我正在学习 rails 和 rspec,并且不要理解这两个代码之间的区别:
在我的 spec/models/user_spec.rb 我有:
describe User do$
before { @user = User.new(name: "Example User", email: "user@example.com") }
subject {@user}
现在我检查名称格式:
describe "when name has wrong format" do
it "should not be valid" do
names = %w[%marcin ??? 123 ___123 ___]
names.each do |invalid_name|
@user.name = invalid_name
it{should_not be_valid}
end
end
end
它不起作用,但是当我使用它@user.should_not be_valid
而不是it{should_not be_valid}
它时,它可以正常工作,我不明白为什么我有subject {@user}
,所以我认为it {should
意味着相同@user.should