gpt4 book ai didi

java - 在 spring test mvc 中设置请求部分

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:15:06 27 4
gpt4 key购买 nike

我正在尝试测试(通过 Spring 测试 (mvc))使用 servletRequest.getParts() 的 Controller

到目前为止,我只读到 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

我检查了 spring 代码,并调用了 file(...)List<MockMultipartFile> 中添加一个元素什么时候getParts()从另一个列表中获取它的元素 (Map<String, Part> parts)

必须有另一种方法...

编辑 1

我用来测试 Controller 的代码是:

ResultActions result = mockMvc.perform(
MockMvcRequestBuilders.fileUpload(new URI("/url")).file("param", "expected".getBytes()))

最佳答案

目前不支持使用 javax.servlet.http.Part 进行测试在 Spring MVC 测试框架中。

因此,我引入了两张票来解决 Spring Framework 5.0 中的这个缺点:

在此期间,您应该能够模拟 Part自己并在准备好的MockHttpServletRequest中注册通过自定义 RequestPostProcessor .

问候,

Sam(Spring TestContext Framework 的作者)

关于java - 在 spring test mvc 中设置请求部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37000457/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com