嗨,我使用测试容器与 docker 进行了集成测试。在容器上我运行 jms。在测试中,我将消息放在队列中。
我如何在测试中等待以使其填充到 jms 上?
在本地机器上它可以工作,但在詹金斯它失败了,所以我必须添加
Thread.sleep(3000);
但这很讨厌。org.awaitility 似乎错过了用法:
await().atMost(2, TimeUnit.SECONDS).until(() -> return true));
我只需要暂停一下以使 jms 传播(放入 jms 队列)并等待侦听器采取行动,即将消息放入数据库。然后我必须调用 get rest 端点来查看它是否有效。
使用主题会更容易,因为我会在主题上创建测试监听器。但它是队列,可以有监听器来获取消息。
在此先感谢您的任何建议