我应该在MQ / Service体系结构中测试整个业务流程吗?

时间:2018-10-14 22:23:09

标签: testing rabbitmq integration-testing message-queue

我正在尝试使用RabbitMQ分离将电子邮件发送到单独服务中的代码,这些服务之间可以进行通信。

目前,我有集成测试来测试我们的HTTP端点,就像这样:

1. Create fake data in a dockerized mysql container. So that the DB is in the correct state
2. Perform testable action such as: User needs to approve a contract
3. Expect that the `contract.status` is now `approved`
4. Query a local SMTP server (Mailhog) to see if the email is there
5. Expect that email subject/body contains what I'm expecting

现在,我计划将消息队列加入混合。我应该仍然像这样编写集成测试吗?我应该如何编写测试,以便在执行此操作时仍可以测试是否已发送电子邮件。

1 个答案:

答案 0 :(得分:0)

如果您负责整个解决方案,则绝对应该为整个解决方案编写集成测试。

Martin Fowler所述:

  

集成测试确定独立开发的软件单元相互连接时是否正常工作。

编写测试取决于您的具体实现。我认为无论MQ是否存在,您都必须创建测试数据并执行操作(步骤1至3),然后检查结果。