【发布时间】:2014-10-24 07:42:22
【问题描述】:
为了避免在我的 Rspec 测试中重复自己很多,我想写一个这样的函数
def with_each_partner(&block)
PARTNER_LIST.each do |partner|
context "with partner #{partner.name}" { yield partner }
end
end
我有这样一个功能,它的工作原理是所有测试都以提供的合作伙伴的正确值运行,但它们在输出期间不会作为“与合作伙伴 X”上下文的一部分打印:相反,如果我进行这样的测试:
describe Thing do
subject { Thing.new(partner) }
with_each_partner do |partner|
it 'does its thing' do
expect(subject.do).to eq 'its thing'
end
end
end
我最终得到这样的输出:
Thing
does its thing
而不是想要的输出,就像:
Thing
with partner X
does its thing
with partner Y
does its thing
如何让 RSpec 正确处理在我的函数中创建的上下文?
【问题讨论】:
标签: ruby-on-rails ruby rspec