抱歉,我不知道如何更好地说出标题,但这里是我测试的一般概念:
describe Model do
let(:model) { FactoryGirl.create(:model) }
subject { model }
it { should be_valid }
model.array_attribute.each do |attribute|
context "description" do
specify { attribute.should == 1 }
end
end
end
问题是在model.array_attribute.each do |attribute|
行,我得到一个未定义的局部变量或方法model
的错误。我知道let(:model)
正在运行,因为验证(除其他外)工作正常。我怀疑这个问题是因为它在任何实际的测试之外被调用(即。specify
,it
等。)
有关如何使其发挥作用的任何想法?
答案 0 :(得分:1)
model
在此未知,因为它仅在规范块上下文中进行了评估。
做类似的事情:
describe Model do
def model
FactoryGirl.create(:model)
end
subject { model }
it { should be_valid }
model.array_attribute.each do |attribute|
context "description" do
specify { attribute.should == 1 }
end
end
end
答案 1 :(得分:1)
我用以下代码解决了这个问题:
describe Model do
let(:model) { FactoryGirl.create(:model) }
subject { model }
it { should be_valid }
it "description" do
model.array_attribute.each do |attribute|
attribute.should == 1
end
end
end