Mik*_*kov 8 java testing spring spring-mvc spring-test
我正在尝试在当前上下文之外的URL上执行POST请求,看起来Spring看起来无法理解它.
测试代码:
String content = mvc
.perform(post("http://some-external-url.com:8080/somepath)
.header("Authorization", authorization)
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.param("username", username)
.param("password", password)
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString();
Run Code Online (Sandbox Code Playgroud)
就当前背景下的魅力而言.但是根本无法达到远程服务.似乎" http://some-external-url.com:8080 "部分被忽略了.
模拟创建代码:
mvc = MockMvcBuilders.webAppContextSetup(context).build();
Run Code Online (Sandbox Code Playgroud)
有没有办法使它工作?因为使用标准的Java HttpUrlConnection类是一个巨大的痛苦.
Sam*_*nen 10
没有.没有办法让Spring MVC测试框架与外部服务器(或任何实际的服务器)一起工作.
Spring MVC Test框架提供了一流的支持,可以使用可以与JUnit,TestNG或任何其他测试框架一起使用的流畅API来测试Spring MVC代码.它建立在spring-test模块的Servlet API模拟对象之上,因此不使用正在运行的Servlet容器.
最后一句咒语出来:Spring MVC的测试并没有使用一个运行Servlet容器.实际上,它不能与正在运行的Servlet容器或任何类型的实际服务器(本地或远程)一起使用.
作为替代方案,如果你必须测试针对外部服务器上,然后你可以考虑使用放心,而不是Spring MVC的测试对于那些特殊情况.
| 归档时间: |
|
| 查看次数: |
5638 次 |
| 最近记录: |