我尝试使用 RSpec 在 Windows 上测试我的 Rails 3 应用程序。我已经编写了测试和工厂,但无法解决在命令行上运行 RSpec 时出现的问题。
这是测试文件之一:
需要“spec_helper”
describe "SignIns" do
it "can sign in" do
user = FactoryGirl.create(:user)
visit new_user_session_path
fill_in "login", with: user.username
fill_in "password", with: user.password
click_on "sign in"
current_user.username.should == user.username
end
end
这是工厂.rb:
factory :layout do
name "layout1"
end
factory :club do
sequence(:name) { |i| "Club #{i}" }
contact_name "John Doe"
phone "+358401231234"
email "#{name}@example.com"
association :layout
end
factory :user do
sequence(:username) { |i| "user#{i}" }
password 'password'
email "[email protected] /cdn-cgi/l/email-protection"
club
end
当我尝试运行 RSpec 时,出现以下错误:
trait not registered: name
#C: in 'object'
#.spec/features/sign_in_spec.rb:11:in 'block (2 levels) in (top(required))
我究竟做错了什么?
我知道这是一个老问题,但万一其他人在搜索“特征未注册”时最终来到这里:
当使用依赖属性时,例如email
依赖于取决于name
in the :club
从问题的工厂来看,您需要将属性包装在大括号中,以便它得到延迟评估:
email {"#{name}@example.com"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)