现在我有很多以下内容:
it{ ::Api.any_instance.should_receive(...).once; start }
如果我尝试制作::Api.any_instance
主题,Rspec会窒息,即
subject{ ::Api.any_instance }
it{ should_receive(...).once; start }
有没有办法干燥这些规格?
我认为问题在于规格的设计。
我建议做的是:
describe SomeClass do
let(:object_instance) { described_class.new }
before do
# Put expectations in before block, they shouldn't be a part of text example!
object_instance.should_receive(:something)
end
specify { subject.do_something_else }
end
如果您有更多的期望要满足,您可以将它们全部放入before
块中或仅使用不同context
的 s。
如果很多规格看起来相似,我会选择将其提取到共享示例中。