考虑以下测试:
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