1
我試圖測試下面的代碼塊使用rr
:產量使用RR
response = RestClient.get(url, {:params => params}){|response, request, result| response }
在香草rspec
,你會做這樣的事情:
RestClient.should_receive(:get).with(url, {:params => params}).and_yield(response, request, result)
我會怎麼做與rr
相同?
設置:
let(:url) { "http://localhost/" }
let(:params) { {:item_id => 1234, :n => 5} }
let(:response) { Object.new }
let(:request) { Object.new }
let(:result) { Object.new }
我已經試過了一堆變化:
mock(RestClient).get(url, {:params => params}) { response, request, result }
和
mock(RestClient).get(url, {:params => params}, &proc/lambda{}).return(result)
和
mock(RestClient).get(url, {:params => params}).yields(response, request, result)
和
mock(RestClient).get(url, {:params => params}).returns do |proc_as_block|
response
end
但他們沒有工作。
THX,你這個[答案]幫助(http://stackoverflow.com/a/19201353/449531),採用RR收益率的另一個例子。 – zhon 2013-10-05 18:44:54