8
我想知道爲什麼我需要處理異常,當我嘲笑拋出異常的無效方法時。Mockito,void檢查異常的方法
例如
public class MyObject {
public void call() throws SomeException {
//do something
}
}
現在,當我這樣做,
@Mock
MyObject myObject;
doNothing().when(myObject).call()
它會導致編譯錯誤說
"error: unreported exception SomeException; must be caught or declared to be thrown"
我很納悶,爲什麼我需要處理異常對於本身被嘲笑的方法。
你不需要處理它。只需在您的測試方法中添加'throws Exception'即可。我將所有的JUnit方法標記爲拋出異常,這是習慣的問題 - 沒有理由不這樣做。 –
@DawoodibnKareem當我想表示測試應該引發異常時,我使用斷言助手,例如'@Test(expected = ...)'。我儘量避免測試方法簽名中的'throws'子句,因爲它沒有任何關於測試本身的有用信息。 –