1
我使用JUnit4和Mockito爲我的應用程序編寫了單元測試,並且希望對其進行全面覆蓋。但我不完全理解如何覆蓋異常分支。 例如:如何進行單元測試以覆蓋異常分支
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
我如何從測試異常中調用?
我使用JUnit4和Mockito爲我的應用程序編寫了單元測試,並且希望對其進行全面覆蓋。但我不完全理解如何覆蓋異常分支。 例如:如何進行單元測試以覆蓋異常分支
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
我如何從測試異常中調用?
雖然你可能不能夠輕鬆地插入一個例外成特別Thread.sleep
,因爲它被稱爲靜態,而不是對注入情況下,您可以輕鬆地存根注入依賴拋出異常調用時:
@Test
public void shouldHandleException() throws Exception {
// Use "thenThrow" for the standard "when" syntax.
when(dependency.someMethod()).thenThrow(new IllegalArgumentException());
// Void methods can't use "when" and need the Yoda syntax instead.
doThrow(new IllegalArgumentException()).when(dependency).someVoidMethod();
SystemUnderTest system = new SystemUnderTest(dependency);
// ...
}
它只是一個例外。我的意思是調用任何異常 – NikedLab
它取決於可能拋出異常的代碼以及您感興趣的異常類型。 – Raedwald