在测试模型字段的有效性之前,我尝试在主题中设置实例变量。我需要设置此变量,因为验证是有条件的(它仅用于某些类型的用户)。所以我有这样的事情:
context "as a user" do
before(:each) do
subject = Organization.new
subject.editor = "user"
end
it { subject.should validate_presence_of :name }
end
但它没有按预期工作:
Failure/Error: it { subject.should validate_presence_of :description }
RuntimeError:
Organization#editor attr is not set
我错过了什么?
答案 0 :(得分:3)
subject
是局部变量。您似乎打算使用an explicit subject:
context "as a user" do
subject { Organization.new }
before(:each) do
subject.editor = "user"
end
# usually, you don't explicitly name the subject in an `it` like this
it { should validate_presence_of :name }
end