2013-07-01 49 views
0

Practical Object-Oriented Design in Ruby: An Agile Primer,作者寫道,「[對象]是負責測試自己的接口,它通過使關於結果的說法,這些[進入]消息返回這樣做。......這些消息需要測試,因爲其他應用程序對象dpeend上他們的簽名和他們返回的結果。「我應該單元測試不返回值的消息嗎?

她解釋,「用於測試傳入消息的第一個要求是要證明,它在每一個可能的情況返回正確的值,」給這個作爲一個例子的單元測試用於diameter方法針對一種假設的Wheel類:

def test_calculates_diameter 
    wheel = Wheel.new(26, 1.5) 
    assert_in_delta(29, wheel.diameter, 0.01) 
end 

我的問題是,那些沒有返回值的傳入消息呢?我有一個對象的公共接口只有兩個方法不返回一個值,而只是改變接收對象的狀態。我還需要測試該對象嗎?如果是這樣,怎麼樣?

回答

0

在輸入問題時,我想我已經意識到了答案:爲了使用作者的命名法,我應該測試爲響應傳入消息而發送的傳出「命令」消息

對於某些情況下,作者後來寫道:「許多傳出的消息確實有應用程序所依賴的副作用(觀察者採取行動),這些消息是命令,它是發送的響應反對證明他們被正確送出。「

就我而言,我的目標是將消息發送到其子容器時,其狀態的變化,使對象的試驗應確保這些消息被髮送給它的孩子。

相關問題