我正在对服务A进行功能测试。该功能由来自服务B的API调用1触发,然后最后响应(发送另一个API调用2)服务B。因此,计划是对服务B进行有线测试并发出调用1,然后验证它是否收到API调用2请求。
我们在Docker组合文件中使用Wirerock来模拟服务B,如下所示:
service-b:
image: ***/wiremock-service-b
ports:
- "8081:8081"
volumes:
- ./wiremock/service-b/mappings/:/home/wiremock/mappings/
有什么方法可以让我得到这个服务B wirerock示例(部署在docker)使用java代码,并触发了调用1,然后验证调用2请求回来?请帮助。谢谢。
1条答案
按热度按时间ogq8wdun1#
看起来你在测试中混合了两种方法。我假设你正在做一个集成测试:
1.使用Wiremock时,不需要在Docker容器中启动服务。Wiremock的目的是模拟调用要模拟的服务时收到的响应。在这种情况下,您实际上并不调用服务。
1.通过第二种方法,您可以使用Docker容器和TestContainer。在这种情况下,要检查是否调用了服务,您必须测试响应并检查这是否是您预期的结果。首先,您要调用的服务(在您的容器中)必须由API公开,然后在您正在测试的服务中,您使用
TestRestemplate
或WebTestClient
调用服务。示例代码如下所示:
我建议使用以下链接来解释集成测试的方法:https://rieckpil.de/guide-to-springboottest-for-spring-boot-integration-tests/https://www.freecodecamp.org/news/integration-testing-using-junit-5-testcontainers-with-springboot-example/https://docs.spring.io/spring-framework/docs/current/reference/html/testing.html#webtestclient-tests