首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >针对RabbitMQ的JUnit测试

针对RabbitMQ的JUnit测试
EN

Stack Overflow用户
提问于 2015-01-19 20:37:49
回答 3查看 10.2K关注 0票数 7

我正在使用RabbitMQ和Spring构建一个应用程序:到目前为止还不错。为了定义单元测试,我使用了针对外部服务器的JUnit。我想知道的是,是否有一种方法可以模拟RabbitMQ服务器来执行测试,如果有更多的方法,哪种方法是最好的。

我在周围找到了一些帖子,但它们是在2012年甚至更早的时候写的。也许有更新、更简单、更有效的东西!

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-19 20:40:41

我不会试图模拟RabbitMQ服务器本身;相反,我会模拟您的发布方法、通道工厂等,以便模拟错误条件(当然,还有愉快的路径)。例如,当您的FoozleEvent.publish方法抛出IOError时会发生什么?

票数 6
EN

Stack Overflow用户

发布于 2015-01-19 23:10:11

我们在框架本身的测试中广泛使用mocking;探索tests以获取想法。这在RabbitTemplate方面还不错,但对侦听器容器的模拟更复杂一些。

然而,在某些情况下,需要一个真正的集成测试,在这种情况下,如果没有本地的rabbitmq代理,我们使用JUnit @Rule来忽略测试。

票数 3
EN

Stack Overflow用户

发布于 2019-01-28 15:54:59

为了在Java界模仿RabbitMQ,我正在构建一个库:。

其目的正是您所描述的用例。您可以简单地替换amqp-client ConnectionFactory,您将拥有大多数开箱即用的RabbitMQ功能,无需使用IO (无需端口绑定),也无需启动时间。

只需在pom.xml中添加依赖项即可

代码语言:javascript
复制
<dependency>
    <groupId>com.github.fridujo</groupId>
    <artifactId>rabbitmq-mock</artifactId>
    <version>1.0.14</version>
    <scope>test</scope>
</dependency>

然后,您可以通过替换通过Spring configuration或Spring-Boot为您提供的ConnectionFactory来使用它:

代码语言:javascript
复制
@Configuration
@Import(AppConfiguration.class)
class TestConfiguration {
    @Bean
    ConnectionFactory connectionFactory() {
        return new CachingConnectionFactory(new MockConnectionFactory());
    }
}

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28024842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档