2010-11-02 28 views
0

是否有可能單元測試如下的方法?如何單元測試無副作用的方法?

void AddNumbers() { 
int i = 2+2; 
} 

換句話說,一種沒有副作用的方法真的。或者像這樣的方法被跳過,通常不會被測試?我會假設「我」通常會成爲一個類級別的變量,但是這樣做有其缺點(儘管沒有什麼大的變數)。

感謝

+4

您的示例函數沒有效果,因此您需要測試的唯一一件事是調用它是否引發異常。如果函數沒有返回值並且沒有副作用,那麼它根本沒有任何作用(除了消耗資源) – 2010-11-02 23:38:32

回答

4

有與沒有副作用,也沒有主要的影響,比如你提出的方法沒有價值。調用它 - 來自測試代碼或生產代碼 - 完全沒有效果。所以沒有什麼可以測試的,沒有任何理由的方法。

1

嗯......這種方法沒有副作用,但它實際上什麼都不做。沒有副作用的方法IMO會在不改變任何狀態(類或應用程序)的情況下返回一個值,這就是如何再次測試預期結果的方法。對於任何實現,你寫的方法是不可見的。