0

有可能做类似的事情ServiceObject.should_receive(:foo).with(:bar).and_call_original.exacly(1).times吗?

我的规格看起来像这样:

it 'should call instance of service object\'s :baz! method' do
  ServiceObject.any_instance.should_receive(:baz!).exactly(1).times
end

it 'should call service object\'s :foo method' do
  ServiceObject.should_receive(:foo).with(:bar).and_call_original.exacly(1).times
end

如果我删除and_call_original第一个规范失败。如果我在第二个规范中注释掉.exacly(1).times两个规范都通过了。

两个问题:

  • 为什么这两个规格会相互干扰?
  • 有没有办法调用的东西意味着.should_receive(:foo).with(:bar).and_call_original.exacly(1).times什么?

提前致谢!

4

1 回答 1

3

and_call_original不返回电流example,所以它不能工作。

相反,您可以这样做:

.should_receive(:foo).with(:bar).exacly(1).times.and_call_original
于 2013-08-22T13:14:43.163 回答