我現在有一些期望建立與連續調用一個模擬:RSpec的:期待一個消息多次,但具有不同的參數
該規範:
@my_mock = mock("a_mock")
@options1 = {:some => "option"}
@options2 = {:some_other => "option"}
@first_param = mock("first_param")
@my_mock.should_receive(:a_message).with(@first_param, @options1)
@my_mock.should_receive(:a_message).with(@first_param, @options2)
不過,我得到以下幾點:
Mock "a_mock" received :a_message with unexpected arguments
expected: (#<Spec::Mocks::Mock:0x81b8ca3c @name="first_param"{:some => "option"})
got: (#<Spec::Mocks::Mock:0x81b8ca3c @name="first_param">, {:some_other => "option"})
當我調試這個時,第一個期望會被調用。在使用相同信息但不同參數預計連續呼叫之前,是否必須指定其他任何信息?
當我嘗試你的例子時,它適用於我。你正在運行什麼版本的Ruby和RSpec? – 2009-11-23 21:17:59