ben*_*n.d 7 java spring spring-mvc spring-test spring-mvc-test
我正在尝试测试(通过 Spring 测试(mvc))一个使用的控制器servletRequest.getParts()
到目前为止我所读到的就是MockMvcRequestBuilders.fileUpload().file()解决方案。但是我无法让它发挥作用。我编写了以下失败的测试
MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.fileUpload("/foo")
.file(new MockMultipartFile("file", new byte[] { 1, 2, 3, 4 }));
MockHttpServletRequest rq = builder.buildRequest(null);
Assert.assertEquals(1, rq.getParts().size()); // result 0
Run Code Online (Sandbox Code Playgroud)
我浏览了 spring 代码,并且调用file(...)添加了一个元素,List<MockMultipartFile>当getParts()从另一个列表获取其元素时(Map<String, Part> parts)
必须有另一种方法来做到这一点......
编辑1
我用来测试控制器的代码是:
ResultActions result = mockMvc.perform(
MockMvcRequestBuilders.fileUpload(new URI("/url")).file("param", "expected".getBytes()))
Run Code Online (Sandbox Code Playgroud)
目前Spring MVC 测试框架javax.servlet.http.Part不支持测试。
因此,我在 Spring Framework 5.0 中引入了两个解决方案来解决这个缺点:
在此期间,您应该能够嘲笑自己并通过自定义Part将其注册到准备中。MockHttpServletRequestRequestPostProcessor
问候,
Sam(Spring TestContext 框架的作者)
| 归档时间: |
|
| 查看次数: |
3332 次 |
| 最近记录: |