例如,在verifySthIsSetCorrectly()
的下面的代碼中,我應該使用assertEquals()
來檢查結果還是應該拋出異常,以便它被調用者的try...catch
捕獲並讓調用者處理?在JUnit中,我應該何時使用assertEquals()何時應該使用try ... catch來驗證結果?
@Parameters
public static Collection<object[]> methodParams() {
List<Object[]> params = new ArrayList<Object[]>();
/* arg, errorString */
params.add(new Object[] {"arg1", null /*errorString*/});
params.add(new Object[] {"arg2", ERROR_STRING1 /*errorString*/});
}
@Test
public void sampleTest() {
try {
MethodAndWait(arg);
assertNull("expect error String" + errorString, errorString);
} catch (Exception ex) {
assertNotNull("expect error String" + errorString, errorString);
assertTrue(ex.getMessage().contains(errorString));
}
}
private void MethodAndWait() {
call_remote_server_to_have_sth_set;
verifySthIsSetCorrectly();
}
private void verifySthIsSetCorrectly() {
int sth = getSth();
assertEquals(sth == "5");
}
的assertEquals將是錯誤的。它必須是'assertEquals(5,sth)'。 –
你是對的。 – user389955