我刚刚开始我的第一个 java 玩具项目,并且面临着应该如何完成的误解。我正在使用 java.util.logging 和 JUnit4 库。
例如我们有这样的东西:
public class SomeClass {
private static Logger log = Logger.getLogger(SomeClass.class.getName());
public static void SomeMethod() {
try{
...some code...
} catch(Exception e){
log.warning("Something bad happened");
}
}
单元测试将是:
@Test
public void SomeClassTest(){
SomeClass.SomeMethod();
}
但是永远不会有异常(exception),因为我已经在方法中处理过了。
我应该在 catch block 中生成新的异常吗?或者可能将 junit 与日志记录结合使用不是一个好主意?
最佳答案
从用户的角度来看,不抛出异常(并返回预期值(如果有))的方法意味着能够正常工作。
所以你应该在一个方法中使用try - catch
和 logging,当你可以捕获异常并且该方法仍然可以正常工作时(例如,当发生此错误时执行其他操作但仍返回预期结果或执行假定的操作)。
在这种情况下,单元测试应检查操作是否正确执行(对象是否处于预期状态并且结果值(在您的情况下为 void)是否正确
如果异常发生时方法不能执行它应该执行的操作,您应该重新抛出异常(并且通常不记录它,但这取决于情况)。
在这种情况下,单元测试应该检查操作是否正确执行(如果对象处于预期状态并且结果值(在您的情况下为 void)是否正确,如果没有异常,如果有是一个异常,它应该检查这个异常是否是预期的
关于java - 如何在 Java 中结合日志记录和单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225510/