我有我的控制器是這樣定義的函數:如何使用RSpec編寫一個存根調用塊並且不返回值的Rails方法?
def respond_with(action = 0, &block)
if block_given?
response = get_response
block.call(MyResponse.new(response))
end
end
有了,我可以查詢響應對象:
respond_with do |response|
case response.status
when 'ok'
when 'errors'
#etc etc...
end
我只是把它當然沒有塊,如果我想。
如果我有它返回一個值的函數它會是這樣的
controller.should_receive(:respond_with).with(DO_SOMETHING).and_return(something)
這將是確定的
def respond_with(action = 0)
...
response
end
我如何檢查該塊被稱爲具有特定值在| response |中?
回覆:「我可以在沒有阻擋的情況下調用它,如果我想要的話」 - 沒有阻止的情況下調用'respond_with'的目的是什麼?定義還有更多嗎? –
想一想,爲它提供一個塊的目的是什麼,因爲它們沒有'yield'或塊的調用? –
當我寫這個,我試圖給它一個正確的名字。我最好稱它爲perform_something_and_respond_with_if_user_provides_a_block。 :) – valk