如果我为一个抛出一堆异常的函数编写测试用例,我应该在我的测试方法中为这些异常添加一个 throws 声明,还是应该捕获每个单独的异常。正确的做法是什么?我相信 try-catch 是一种更好的方法,但是在 catch 块中我应该打印堆栈跟踪吗?
例如,我有一个getGroups(String name)
throws的方法AuthenticationException
。如果我编写一个测试用例来检查参数为空IllegalArgumentException
时是否抛出了一个name
,我该如何处理AuthenticationException
?我是将它添加到我的方法的 throws 部分还是应该将异常包含在一个try-catch
块中。
@Test
public void testGetGroupsWithNull() throws AuthenticationException {
thrown.expect(IllegalArgumentException.class);
getGroups(null);
}
在上面的测试用例中,我只是添加了一个throws AuthenticationException
,但我想知道将异常包含在 try-catch 块中是否更好,以及在捕获异常后我应该做什么。我可以打印堆栈跟踪。
我正在处理意外异常AuthenticationException
,方法是不将其放在“抛出”子句中,而是放在 try/catch 块中。
@Test
public void testGetGroupsWithNull() {
thrown.expect(IllegalArgumentException.class);
try {
getGroups(null);
} catch(AuthenticationExcption e) {
Assert.fail("Authentication Exception");
}
}