次のテストを検討してください。
class A
def print(args)
puts args
end
end
describe A do
let(:a) {A.new}
it "receives print" do
a.should_receive(:print).with("World").and_call_original
a.print("Hello")
a.print("World")
end
end
RSpec ドキュメントには次のように書かれています。
should_receive() を使用して、例が完了する前に受信者がメッセージを受信する必要があるという期待を設定します。
だから私はこのテストに合格することを期待していましたが、そうではありません。次のメッセージで失敗しています。
Failures:
1) A receives print
Failure/Error: a.print("Hello")
#<A:0x007feb46283190> received :print with unexpected arguments
expected: ("World")
got: ("Hello")
これは予想される動作ですか?このテストに合格する方法はありますか?
ruby 1.9.3p374とrspec 2.13.1を使用しています