JUnit / TestNG检查catched Exceptions

时间:2017-05-18 08:32:56

标签: java exception junit try-catch testng

我有以下问题: 我们的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并查看这些变量,但我感兴趣的是,如果我的问题还有其他可能的解决方案。

谢谢, 多米尼克

1 个答案:

答案 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();
        }
    }
}

因此,您可以单独测试这两个类。