2011-03-31 44 views
1
def foo 
    a & b & c & d 
    end 

對於應用程序邏輯非常重要,所以我必須爲它編寫好的測試。方法a,b,c,d已經過測試。我是否應該準備完整的數據以使a,b,c,d工作並返回所需的值,或者在這種情況下是否存在殘差?關於使用其他方法組成的stubbing方法的問題

回答

1

單元測試應該只測試被測方法,即foo。這意味着,你應該存根a,b,c和d。
要使其具有任何用途,您應該確保覆蓋可能由這些方法的返回值導致的所有邊角情況。

1

如果你真的想徹底測試這一點,我會寫兩個各種自動測試:一個單元測試這將收到一個,b,c和d爲存根和集成測試將確保所有的邏輯運作良好,沒有整合問題。

1

我非常感謝您對透徹測試的渴望,但是使用存根的單元測試只會測試&操作符正常工作。該運算符不是您的代碼。

如果使用mocks代替存根,它至少會測試所有的方法被調用,但這實際上只是一種文檔測試。

使用數據的集成測試可能會很有用。

+0

我假設,foo並不像這裏所示的那麼簡單。如果是這樣,它對於應用程序邏輯將不是「非常重要」。但是,如果這很簡單,我會同意你的看法。 – 2011-03-31 10:00:54