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最初の仕様を削除すると失敗します。2 番目の仕様をコメントアウトすると、.exacly(1).times両方の仕様がパスします。

2 つの質問:

  • これら 2 つの仕様が互いに干渉するのはなぜですか?
  • を意味するものを呼び出す方法はあり.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 に答える