从外部系统调用api的春季模拟mvc测试

时间:2018-12-19 15:55:31

标签: spring mockmvc spring-test-mvc

我有一个通过MockMvc存根的api(API 1),当我通过该模拟对象在此API上发布时,向外部系统发出请求,该请求又调用了系统的api(API 2)。由于此API 2是通过http通道(host:port)调用的,并且容器未运行,因此会中断。由于我不想更改外部系统调用我的API的方式,因此我该如何处理这种情况。希望我已经澄清了。

1 个答案:

答案 0 :(得分:1)

如果您使用的是MockMvc,则无法通过网络测试呼叫。

因此,在这种情况下,您将需要模拟或存根执行外部网络调用的组件。

另一方面,如果您正在使用Spring Boot ...,则可以让Spring Boot的测试支持启动嵌入式Servlet容器进行测试,并且外部调用可以通过HTTP连接到正在运行的Servlet容器。但是,为此,通常使用诸如Spring Boot的TestRestTemplate或核心Spring的WebTestClient(自Spring Framework 5.0起可用)之类的东西代替MockMvc