单元测试 - 如何使用 Spring MockMVC 调用 soap 服务
Unit tests - How to use Spring MockMVC to call soap service
我正在使用下面列出的代码对我的其余服务进行单元测试,并且请求已成功命中该服务。
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
private MockMvc mvc;
private URI = "/order/1"
this.mvc.perform(
post(URI).headers(headers)
.contentType(MediaType.APPLICATION_JSON_UTF8)
.content(mapper.writeValueAsString(request))
.accept(MediaType.APPLICATION_JSON_UTF8))
.andExpect(result -> {
response[0] = result.getResponse().getContentAsString();
statusCode[0] = result.getResponse().getStatus();
});
我正在尝试使用类似的代码测试我的 soap 服务 (http://localhost:8080/OrderService/13.08.wsdl)。当我通过浏览器访问时,端点似乎已启动,但在结果中看到 404 -
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
private MockMvc mvc;
private URI = "http://localhost:8080/OrderService/13.08.wsdl";
this.mvc.perform(
post(URI).headers(headers)
.contentType(MediaType.TEXT_XML)
.content(request.toString())
.accept(MediaType.TEXT_XML))
.andExpect(result -> {
response[0] = result.getResponse().getContentAsString();
statusCode[0] = result.getResponse().getStatus();
});
您的 URI 是要获取的 wsdl 文件,您的代码针对此 URI 执行 POST。
尝试修改您的代码行:
post(URI).headers(headers)
使用适当的方法:
get(URI).headers(headers)
@WebMvcTest
注解将只加载应用程序的控制器层。这将只扫描 @Controller
/@RestController
注释,不会加载完整的 ApplicationContext
。
我正在使用下面列出的代码对我的其余服务进行单元测试,并且请求已成功命中该服务。
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
private MockMvc mvc;
private URI = "/order/1"
this.mvc.perform(
post(URI).headers(headers)
.contentType(MediaType.APPLICATION_JSON_UTF8)
.content(mapper.writeValueAsString(request))
.accept(MediaType.APPLICATION_JSON_UTF8))
.andExpect(result -> {
response[0] = result.getResponse().getContentAsString();
statusCode[0] = result.getResponse().getStatus();
});
我正在尝试使用类似的代码测试我的 soap 服务 (http://localhost:8080/OrderService/13.08.wsdl)。当我通过浏览器访问时,端点似乎已启动,但在结果中看到 404 -
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
private MockMvc mvc;
private URI = "http://localhost:8080/OrderService/13.08.wsdl";
this.mvc.perform(
post(URI).headers(headers)
.contentType(MediaType.TEXT_XML)
.content(request.toString())
.accept(MediaType.TEXT_XML))
.andExpect(result -> {
response[0] = result.getResponse().getContentAsString();
statusCode[0] = result.getResponse().getStatus();
});
您的 URI 是要获取的 wsdl 文件,您的代码针对此 URI 执行 POST。 尝试修改您的代码行:
post(URI).headers(headers)
使用适当的方法:
get(URI).headers(headers)
@WebMvcTest
注解将只加载应用程序的控制器层。这将只扫描 @Controller
/@RestController
注释,不会加载完整的 ApplicationContext
。