我有以下问题: 我们的java软件接收传入的xml文件,并解析/验证/制作一些魔法。因为它是一个24/7软件,它可以通过忽略单个文件并继续下一个文件来抵御单个故障。
我想知道是否有可能的解决方案来测试单元,例如JUnit或TestNG用于已经捕获的异常。
例如,如果有这样的类和函数
public class ExceptionTest {
public static void throwEx() {
try {
int i = 1 / 0;
} catch (Exception e) {
e.printStackTrace();
}
}
}
现在我想测试是否有任何异常被捕获。如果是这样,测试应该失败。另一方面,如果我期望某些类型的例外,测试应该会成功。
public class TSTException {
@Test
public void testExceptionThrown() {
ExceptionTest.throwEx();
assert ("ExceptionsCatched.size()", 0)
}
}
我知道我可以编辑我的代码以提供某些全局变量,例如boolean success = true
并查看这些变量,但我感兴趣的是,如果我的问题还有其他可能的解决方案。
谢谢, 多米尼克
答案 0 :(得分:0)
如果可以修改代码您可以包装包含逻辑的类并在包装类中捕获异常。 像这样的东西:
public class SomeService{
public void doSomething() {
int i = 1 / 0;
}
}
public class SomeServiceCatchExceptionWrapper{
private SomeService someService;
public void doSomething() {
try {
someService.doSomething();
} catch (Exception e) {
e.printStackTrace();
}
}
}
因此,您可以单独测试这两个类。