1
我想嘲笑這一呼籲:什麼是RSpec中receive_message_chain和and_wrap_original的好方法?
它可以與
allow_any_instance_of(RequestHandler).to
receive_message_chain(:headers, :[]) do |field|
'1.2.3.4'
end
但是做,我想部分雙,所以只返回如果field == 'REMOTE_ADDR'
廢止響應。對於其他領域,我想調用原始實現。
expect(API).to receive(:solve_for).and_wrap_original { |m, *args| m.call(*args).first(5) }
然而,這似乎並沒有與消息鏈的工作。我得到:
undefined method `and_wrap_original' for #<RSpec::Mocks::Matchers::ReceiveMessageChain:0x007faef1f3fd20>
那麼,什麼是在RSpec中創建這個部分double的好方法?
rspec的,嘲笑3.4.1
你嘗試過:'期待(頭文件).to接收(:[])。('REMOTE_ADDR').and_return('1.2.3.4')'? –
查看模擬方法的文檔:https://www.relishapp.com/rspec/rspec-mocks/docs – Vincent