是否有可能从块匹配器调用原始实现?
expect(object).to receive(:method) do |argument|
expect(argument).to eql expected_value
somehow_call_original_implementation_of_the_method
end
当我使用and_call_original
时,它忽略了对块内参数的期望,只需检查收到的方法:
expect(object).to receive(:method) do |argument|
expect(argument).to eql expected_value
end.and_call_original
答案 0 :(得分:1)
为什么要用块来呼叫expect_to_receive
?我认为这是为allow_to_receive
保留的,其中块用作方法的实现。
在你的情况下,我认为你可以把它改成这样的东西:
expect(argument).to eql(expected_argument_value)
expect(object).to receive(:method).and_return(expected_value)
object.method