有没有办法给 let 变量名添加一个序列?有点像这样:
5.times do |n|
let (:"item_'#{n}'") { FactoryGirl.create(:item, name: "Item-'#{n}'") }
end
然后像这样的测试可以工作:
5.times do |n|
it { should have_link("Item-'#{n}'", href: item_path("item_'#{n}'") }
end
它将导致对正确排序的测试,但只是试图了解基础知识。
编辑:有一个错字,我删除了单引号,而 let 调用似乎正在工作
let! (:"item_#{n}") { FactoryGirl.create(:item, name: "Item-#{n}") }
如果我使用,测试通过了一个案例:
it { should have_link("Item-0", href: item_path(item_0)
但如果我使用,则不适用于序列:
it { should have_link("Item-#{n}", href: item_path("item_#{n}")
我已经验证问题出在 href 路径中。在路径中使用时如何插入 item_n?