我見過很多如何測試某個方法是否被調用的例子。但爲什麼要這樣做呢?測試任何所述方法的結果會不會更有效?爲什麼要測試一個方法是否被調用?
如果我想測試添加(X,Y)只是爲了看看它被稱爲...爲什麼我不只是斷言,添加(X,Y)== X + Y?在這種情況下,我不僅驗證了方法正在被調用,而且實際上我正在驗證該方法在同一個測試中正在做什麼。
即使在測試方法被稱爲X倍的情況下,說求和(N),它會叫加N次一共拿到N + N - 1 ... + 0;在測試添加被調用的次數時,我仍然無法看到它的價值。
可能有人給了一些有用的建議,到開始測試工程師明白這一點。也許一個爲什麼測試一個方法被調用的例子很重要,爲什麼不僅僅測試它的結果會更有必要呢?
一些澄清,我猜是necassary。具體來說,我正在考慮Mockito.verify方法。爲什麼只想驗證一個方法是否被調用。我對Mockito.Verify的理解如下。
public void testSummation(){
Calculator.Summation(X);
//which I guess I would assume called Add() X times.
Verify(Calculator times(x).add();
(注意:這只是一個普通的例子不是實際的代碼,我已經寫了),但你爲什麼要驗證插件被稱爲X倍?不會測試Summation返回的適當值是一個更好的測試嗎?
你應該測試兩者。 –
也可以生成單元測試,然後可能很容易調用並查看是否拋出異常,而不是立即開始一些可計算的事情。由於後者也會得到例外,這是一種收集點 - 無意義。 –