Java Spring微服务端到端测试
我想为使用spring boot构建的管道编写一个端到端测试 考虑两个微服务A、B,其中B使用A的输出并生成RESTful API。它们使用rabbitmq连接,并依赖于外部数据库 我希望实现以下目标:Java Spring微服务端到端测试,java,spring,testing,Java,Spring,Testing,我想为使用spring boot构建的管道编写一个端到端测试 考虑两个微服务A、B,其中B使用A的输出并生成RESTful API。它们使用rabbitmq连接,并依赖于外部数据库 我希望实现以下目标: 创建一个包含两个微服务的新项目 创建将JPA提供程序配置为内存中数据库的测试配置 将自定义MQ注入A、B以连接它们(rabbitmq不是紧密耦合的) 写测试 基本上用模拟件替换白色部件,并测试彩色部件 这有意义吗?A和B的测试范围不完整,此类测试将保证A和B之间的合同有效。有更好的方法吗?如果
这有意义吗?A和B的测试范围不完整,此类测试将保证A和B之间的合同有效。有更好的方法吗?如果您有时间,我建议您阅读以下内容:
端到端测试的目的不是实现100%的线路覆盖。我建议您使用。它帮助您维护微服务之间的合同(生产者-消费者合同)。
它既可用于基于HTTP的通信,也可用于基于事件的通信。关于这个主题,我的第一个想法是,如果它是一个端到端测试,那么您应该忘记您使用的是哪个框架,因为这与此上下文中的实现有关。因此,我将创建一个测试项目,它本质上是一个docker compose文件,并为它定义了5个容器
- 服务A
- 服务B
- 兔子
- 也可能是数据库,除非你想坚持内存方式
- 以及用于运行测试的单独容器
- 您可以在单独的spring概要文件中定义特定于测试的配置,并通过在docker compose文件中定义env var来激活它
- 在属性文件中传递配置,并将其装载到docker compose文件中