在 Spring 引导应用程序中集成测试 Jms Listeners/Consumers 的策略应该是什么?
What should be the strategy for integration testing Jms Listeners/Consumers in a Spring Boot Application?
我们有一个 Spring 启动 JMS 侦听器应用程序,它由一个 Jms 侦听器、一个服务编排 class 和该编排下面的许多服务 class 组成 class。该应用程序需要集成测试。最初,我正在考虑使用 Spring Test 和 Mockito 的组合来测试它,但为了做到这一点,我需要使用创建我的模拟,然后在两个单独的线程中使用它们(thread[main] for Jms Listener 的测试和线程 [DefaultMessageListenerContainer-1]),据我所知,Mockito only 将其状态保持在 Threadlocal 中,如它们的 documentation 所示。请参阅下面的报价。
Mockito uses ThreadLocal
state to implement a gorgeous mocking syntax in a language full of
constraints (yes, it's java). Fortunately, every time you interact
with Mockito framework it validates the ThreadLocal state in case you
misused the api.
鉴于此,我正在考虑进行两个单独的测试 classes,一个将测试监听器是否正确连接并且能够接收消息,另一个将测试服务编排器和服务 classes 行为。请让我知道是否有其他替代策略可以让我在同一测试下进行测试 class.
谢谢,
胡安
根据我的发现 ,我将着手创建一个集成测试来测试 JMS 侦听器和服务编排器,并尽量减少单独集成测试的数量,以保持构建时间短且稳定保持覆盖质量。
我们有一个 Spring 启动 JMS 侦听器应用程序,它由一个 Jms 侦听器、一个服务编排 class 和该编排下面的许多服务 class 组成 class。该应用程序需要集成测试。最初,我正在考虑使用 Spring Test 和 Mockito 的组合来测试它,但为了做到这一点,我需要使用创建我的模拟,然后在两个单独的线程中使用它们(thread[main] for Jms Listener 的测试和线程 [DefaultMessageListenerContainer-1]),据我所知,Mockito only 将其状态保持在 Threadlocal 中,如它们的 documentation 所示。请参阅下面的报价。
Mockito uses ThreadLocal state to implement a gorgeous mocking syntax in a language full of constraints (yes, it's java). Fortunately, every time you interact with Mockito framework it validates the ThreadLocal state in case you misused the api.
鉴于此,我正在考虑进行两个单独的测试 classes,一个将测试监听器是否正确连接并且能够接收消息,另一个将测试服务编排器和服务 classes 行为。请让我知道是否有其他替代策略可以让我在同一测试下进行测试 class.
谢谢,
胡安
根据我的发现