2015-09-24 45 views
0

在一點點的重構模式,我有一幫有雙打測試被刪空方法調用,如:允許模擬​​(雙(「對象」))​​響應:呼叫或:發送像提供的方法?

connection = double("api_connection", create_thing: double("thing")) 

在這個例子中,調用connection.create_thing返回我的兩倍,如預期thing

不過,我現在這樣,實際的代碼運行像改變了代碼:

connection.send(:create_thing) 

這是造成錯誤的轉換:

Double "api_connection" received unexpected message :call with (:create_thing) 

由於這是一個重構,我不願意修復測試雙打以響應通話。有沒有辦法將這些雙打設置爲接受:call,就像他們接受任何方法傳遞給:call一樣?

回答

0

那麼,這竟然是一個PEBCAK錯誤。

:call不是一個紅寶石對象的方法 - 我打算使用的是:send。用:sends代替我的代碼,在那裏我有那些:call s導致一切工作。

好東西我沒有試圖'修復'測試 - 他們失敗了。