当我单独测试wish
个对象时,它可以工作:
before do
@wish1 = FactoryGirl.create(:wish)
@wish2 = FactoryGirl.create(:wish)
@wish3 = FactoryGirl.create(:wish)
visit wishes_path
end
it { should have_link(@wish1.destination)}
it { should have_link(@wish2.destination)}
it { should have_link(@wish3.destination)}
但是当我使用数组进行尝试并使用each
进行循环时,它将返回nil。
[@wish1, @wish2, @wish3].each do |w|
it { should have_link(w.destination)}
end
结果
NoMethodError: undefined method `destination' for nil:NilClass
有没有办法改善这项测试?我的页面应该有很多愿望的链接,而且大多数都是不同的,所以会有很多重复。但我不能简化它。
答案 0 :(得分:1)
let!(:wishes) { FactoryGirl.create_list(:wish, 3) }
it 'pages includes all whishes links' do
visit wishes_path
wishes.each do |wish|
page.should have_link(wish.destination)
end
end