如何在运行时捕获java断言错误

时间:2013-10-30 18:53:36

标签: exception junit runtime-error assert assertion

前提条件:启用VM参数-ea

源代码示例:

assert booleanVariable;

如果booleanVariable为false,将抛出AssertionError。

我写了JUnit测试导致FALSE booleanVariable,所以如何在不使用插件的情况下捕获错误而不是暂停JUnit测试。请注意,该应用程序用作线程模块。因此,JUnit测试调用一个通用的postMessage方法,如下所示:

@Test
    public void myTest(){
        Message invalidMessage = new Message("I am invalid");
        //somewhere in threadedModule source code would throw AssertionError 
        //after reading from its inputQueue
        threadedModule.postMessage(invalidMessage );
        assertNotNull(onputQueue.waitForNextMessage(timeOutTime,timeOutMessage));
}

谢谢!

1 个答案:

答案 0 :(得分:1)

这是无法实现的,因为您创建的线程模块在与JUnit测试线程分开的线程上运行。 try catch块只能在自己的线程中捕获throwable。