2

现在我有很多以下内容:

it{ ::Api.any_instance.should_receive(...).once; start }

如果我尝试制作::Api.any_instance主题,Rspec会窒息,即

subject{ ::Api.any_instance }
it{ should_receive(...).once; start }

有没有办法干燥这些规格?

4

1 回答 1

0

我认为问题在于规格的设计。

我建议做的是:

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。

如果很多规格看起来相似,我会选择将其提取到共享示例中。

于 2012-11-29T13:36:24.800 回答