【问题标题】:Spring Integration: Automated integration tests with embedded Broker?Spring Integration:使用嵌入式 Broker 进行自动化集成测试?
【发布时间】:2018-12-23 23:30:08
【问题描述】:

是否有可能以某种方式(例如在内存中)启动一个代理,该代理可用于使用 Spring Integration MQTT 执行自动化测试用例? 我已经尝试使用 ActiveMQ 实现这一点(遵循https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html)但不知何故没有成功,也许有人有一个简短的工作示例?

【问题讨论】:

    标签: spring tdd spring-integration activemq mqtt


    【解决方案1】:

    为这样的协议提供一些嵌入式代理不是 Spring Integration (Spring Boot) 的责任。如果有的话,我们可以考虑在这个问题上实现一个自动配置,类似于我们为嵌入式 RDBMS、JMS 和 MongoDB 所做的。你真的需要咨询ActiveMQ documentation

    看起来我们可以在测试类中这样做:

    private static BrokerService activeMQBroker;
    
    ...
    
    @BeforeClass
    public static void setup() throws Exception {
            activeMQBroker = new BrokerService();
            activeMQBroker.addConnector("mqtt://localhost:1883");
            activeMQBroker.setPersistent(false);
            activeMQBroker.setUseJmx(false);
            activeMQBroker.start();
    }
    

    我没有尝试过,但这正是我用来测试 STOMP 的方法。

    【讨论】:

    • 太好了,谢谢您的回答。我会尝试并尽快回来。是的,就像你说的那样,嵌入式数据库的问题的动机。
    • 工作...检查。如果其他人需要它:您需要依赖于 actriveMq-broker、-client、-mqtt。小心,版本匹配。我花了一些时间才把所有东西都放在一起。
    猜你喜欢
    • 2010-09-12
    • 2018-03-20
    • 2019-07-12
    • 2016-12-03
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    相关资源
    最近更新 更多