Java 当使用者抛出异常时,如何使JUnit测试失败?

Java 当使用者抛出异常时,如何使JUnit测试失败?,java,spring,junit,jms,activemq,Java,Spring,Junit,Jms,Activemq,我们正在使用Spring和ActiveMQ(JmsTemplate) 我们有一个非常不需要的场景,JMS使用者(异步处理消息)抛出异常,但JUnit测试仍然成功完成 当异常被抛出到与主测试线程不同的线程上时,我们如何使所有测试失败?您可以尝试JUnit的规则机制,使用自定义UncaughtExceptionHandler“包装”每个测试执行,记录任何未捕获的异常,如果记录了此类异常,则测试失败。 这里可以找到一个很好的例子:您可以在Spring的MessageListenerContainer上

我们正在使用Spring和ActiveMQ(JmsTemplate)

我们有一个非常不需要的场景,JMS使用者(异步处理消息)抛出异常,但JUnit测试仍然成功完成


当异常被抛出到与主测试线程不同的线程上时,我们如何使所有测试失败?

您可以尝试JUnit的规则机制,使用自定义UncaughtExceptionHandler“包装”每个测试执行,记录任何未捕获的异常,如果记录了此类异常,则测试失败。
这里可以找到一个很好的例子:

您可以在Spring的MessageListenerContainer上插入一个ExceptionListener(获取JMSExceptions)和一个ErrorHandler(获取所有其他异常)。然后,您可以测试此侦听器是否收到了某些内容

请参阅和JavaDoc

如果您使用的不是MessageListenerContainer,而是JmsTemplate.receive方法,那么
此方法应引发未经检查的JmsException

这看起来很有希望,但在gradle中导入依赖项时遇到了问题-