我已浏览了Rails教程,放在一起的用户帐户和运行测试它为我工作的项目。
Failures:
1) when email format is invalid should be invalid
Failure/Error: @user.email = invalid_address
NoMethodError:
undefined method `email=' for nil:NilClass
# ./spec/models/user_spec.rb:71:in `block (3 levels) in <top (required)>'
# ./spec/models/user_spec.rb:70:in `each'
# ./spec/models/user_spec.rb:70:in `block (2 levels) in <top (required)>'
2) when email format is valid should be valid
Failure/Error: @user.email = valid_address
NoMethodError:
undefined method `email=' for nil:NilClass
# ./spec/models/user_spec.rb:81:in `block (3 levels) in <top (required)>'
# ./spec/models/user_spec.rb:80:in `each'
# ./spec/models/user_spec.rb:80:in `block (2 levels) in <top (required)>'
Finished in 0.527 seconds
9 examples, 2 failures
Failed examples:
rspec ./spec/models/user_spec.rb:67 # when email format is invalid should be invalid
rspec ./spec/models/user_spec.rb:78 # when email format is valid should be valid
我不知道是什么问题。我看看它说,但我甚至C&P从教程中的代码,仔细检查我做了什么,以确保一切都正确输入。
这里的user_spec文件。
https://gist.github.com/pwz2k/4770845
这里的user.rb文件。
https://gist.github.com/pwz2k/4770854
该故障并没有出现,直到我添加的电子邮件验证。
请确保您正在创建@user你开始测试之前..你在你的用户测试这些行? (rails tutorial listing 6.16)
before do
@user = User.new(name: "Example User", email: "[email protected]")
end
该错误是很清楚!你设置电子邮件至零级。这意味着你应该到电子邮件设置,这是我们说一个用户
@user.email = "something"
该错误是抱怨没有用户,并且不会有任何电子邮件用户。
为了让在这里工作是一个示例代码,这将帮助你解决这个问题。
describe "validations" do
before(:each) do
@user = User.new(name: "gates", email: "[email protected]")
end
it "should be invalid" do
invalid_emails = %w{gs@gmail p.com name.gmail.com foo.ymail}
invalid_emails.each do |invalid_email|
@user.email = invalid_email
expect(@user.email).to_not be_valid
end
end
it "should be valid" do
@user.name = "somename"
valid_emails = %w{[email protected] [email protected] [email protected]
[email protected]}
valid_emails.each do |valid_email|
@user.email = valid_email
expect(@user.email).to be_valid
end
end
end
请确保你已经创建了用户的固定在夹具文件夹中。
希望这可以帮助!