我想为一个用spring boot构建的管道编写端到端测试。
考虑两个微服务A,B,其中B消耗A的输出并产生RESTful API。它们使用rabbitmq连接并依赖外部数据库。
我想实现类似的目标:
基本上用模具替换白色部件并测试彩色部件。
这有意义吗? A和B的测试覆盖范围不完整,这样的测试可以保证A和B之间的合同成立。还有更好的方法吗?
答案 0 :(得分:2)
我建议你使用Spring-cloud-contract。它可以帮助您维护微服务(生产者 - 消费者合同)之间的合同。 它可用于基于HTTP和基于事件的通信。
答案 1 :(得分:2)
我对这个主题的第一个想法是,如果它是一个端到端的测试,那么你应该忘记你使用哪个框架,因为这与这个上下文中的实现有关。所以我会创建一个测试项目,它本质上是一个docker-compose文件,并为
定义了5个容器从这个角度来看,您有两种处理特定于env的配置的方法:
SPRING_PROFILES_ACTIVE
env var来激活它。测试运行器可以保持简单,我会编写一个基于JUnit的测试套件,它使用RestAssured或类似的东西。
我希望这给出一个线索。当然,这是一个广泛的主题,所以进入每个细节并不适合SO答案。
答案 2 :(得分:1)
如果你有时间,我建议你阅读: https://martinfowler.com/articles/microservice-testing/
端到端测试的目的不是做100%的线路覆盖。