0

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

源代码中的示例:

assert booleanVariable;

如果 booleanVariable 为 false,则会抛出 AssertionError。

我编写了导致 FALSE booleanVariable 的 JUnit 测试,因此如何在不使用插件的情况下捕获错误而不是暂停 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));
}

谢谢!

4

1 回答 1

1

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

于 2013-10-31T17:22:34.620 回答