def foo
a & b & c & d
end
對於應用程序邏輯非常重要,所以我必須爲它編寫好的測試。方法a,b,c,d已經過測試。我是否應該準備完整的數據以使a,b,c,d工作並返回所需的值,或者在這種情況下是否存在殘差?關於使用其他方法組成的stubbing方法的問題
def foo
a & b & c & d
end
對於應用程序邏輯非常重要,所以我必須爲它編寫好的測試。方法a,b,c,d已經過測試。我是否應該準備完整的數據以使a,b,c,d工作並返回所需的值,或者在這種情況下是否存在殘差?關於使用其他方法組成的stubbing方法的問題
單元測試應該只測試被測方法,即foo。這意味着,你應該存根a,b,c和d。
要使其具有任何用途,您應該確保覆蓋可能由這些方法的返回值導致的所有邊角情況。
如果你真的想徹底測試這一點,我會寫兩個各種自動測試:一個單元測試這將收到一個,b,c和d爲存根和集成測試將確保所有的邏輯運作良好,沒有整合問題。
我非常感謝您對透徹測試的渴望,但是使用存根的單元測試只會測試&
操作符正常工作。該運算符不是您的代碼。
如果使用mocks代替存根,它至少會測試所有的方法被調用,但這實際上只是一種文檔測試。
使用數據的集成測試可能會很有用。
我假設,foo並不像這裏所示的那麼簡單。如果是這樣,它對於應用程序邏輯將不是「非常重要」。但是,如果這很簡單,我會同意你的看法。 – 2011-03-31 10:00:54