`
tobato
  • 浏览: 101793 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

MockMVC 测试文件上传带参数

 
阅读更多
控制器写法
@Controller
public class NewController {

    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    @ResponseBody
    public String saveAuto(
            @RequestPart(value = "json") JsonPojo pojo,
            @RequestParam(value = "some-random") String random,
            @RequestParam(value = "data", required = false) List<MultipartFile> files) {
        System.out.println(random);
        System.out.println(pojo.getJson());
        for (MultipartFile file : files) {
            System.out.println(file.getOriginalFilename());
        }
        return "success";
    }

    static class JsonPojo {
        private String json;

        public String getJson() {
            return json;
        }

        public void setJson(String json) {
            this.json = json;
        }

    }
}


单元测试写法
@WebAppConfiguration
@ContextConfiguration(classes = WebConfig.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class Example {

    @Autowired
    private WebApplicationContext webApplicationContext;

    @Test
    public void test() throws Exception {

        MockMultipartFile firstFile = new MockMultipartFile("data", "filename.txt", "text/plain", "some xml".getBytes());
        MockMultipartFile secondFile = new MockMultipartFile("data", "other-file-name.data", "text/plain", "some other type".getBytes());
        MockMultipartFile jsonFile = new MockMultipartFile("json", "", "application/json", "{\"json\": \"someValue\"}".getBytes());

        MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
        mockMvc.perform(MockMvcRequestBuilders.fileUpload("/upload")
                        .file(firstFile)
                        .file(secondFile).file(jsonFile)
                        .param("some-random", "4"))
                    .andExpect(status().is(200))
                    .andExpect(content().string("success"));
    }
}
分享到:
评论

相关推荐

    springboot文件上传demo

    使用JUnit和MockMvc库进行单元测试,模拟文件上传请求,确保控制器方法正常工作。 9. **性能优化**: 对于大量文件上传,考虑使用异步处理或分块上传以提高性能。 通过以上步骤,你可以在Spring Boot项目中实现...

    spring-boot-reference.pdf

    以下是一个简单的MockMVC测试示例: ```java import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web....

    spring mvc小例子

    - 文件上传通常涉及 `@RequestParam` 注解,用于获取请求参数,例如文件数据。 4. **文件上传** - **CommonsMultipartFile**: Apache Commons FileUpload 和 Spring MVC 结合使用的类,用于处理多部分表单数据...

    springmvc学习笔记-前端控制器、上传、异常、开发心得小结等.zip

    本学习笔记将涵盖前端控制器、文件上传、异常处理以及开发过程中的心得小结。 1. **前端控制器(DispatcherServlet)** 前端控制器是SpringMVC的核心组件,负责接收所有HTTP请求,然后根据请求的类型和映射规则...

    SpringMVC入门教程

    - SpringMVC提供了便捷的文件上传功能,可以使用`MultipartFile`接口处理上传的文件。 - 文件下载则通过响应流实现,设置Content-Disposition头指示浏览器如何处理文件。 8. **异常处理** - 可以通过`@...

    spring3MVC.pdf

    对于文件上传,Spring MVC也有专门的支持,可以通过`MultipartFile`类型参数接收上传的文件。 ### 异常处理和测试 Spring MVC允许在控制器中使用`@ExceptionHandler`注解来处理特定类型的异常,提供统一的错误页面...

    spring mvc案例源码

    Spring MVC 是一个基于...- springmvc0600可能讲解了拦截器、文件上传/下载或者RESTful API的设计。 通过这些文件,你可以逐步学习并实践Spring MVC的各个方面,从基础到高级,建立起完整的Spring MVC应用开发能力。

    springmvc完整案例

    SpringMVC是Spring框架的一部分,专门用于构建Web应用程序。...在这个"springmvc完整案例"中,我们可以...进一步学习和实践,你将能够掌握更复杂的SpringMVC应用场景,比如RESTful API设计、文件上传下载、异常处理等。

    SpringMVC4教程-超权威--超详细_spriingmvc4_

    1. **MultipartFile接口**:处理文件上传,通过`@RequestParam("file") MultipartFile file`接收。 2. **文件存储**:将上传文件保存到服务器,可自定义存储策略。 3. **文件下载**:通过Response的输出流,将服务器...

    test-springmvc.rar

    - SpringMVC提供了`MockMvc`类,可以在不依赖服务器环境的情况下进行单元测试和集成测试。 综上所述,SpringMVC通过其强大的功能和灵活性,成为开发高效、可扩展的Web应用的首选框架。理解并熟练运用上述知识点,...

    springboot学习思维笔记.xmind

    文件上传配置 自定义HttpMessageConverter MappingJackson2HttpMessageConverter StringHttpMessageConverter 服务器端推送技术 SSE Servlet3.0+异步方法处理 Spring MVC的测试 ...

    sping web mvc

    Spring MVC提供了便捷的文件上传支持,通过MultipartFile接口处理上传的文件,可以在控制器方法中接收并处理。 9. **RESTful API** 使用Spring MVC可以轻松构建RESTful风格的API,通过HTTP动词(GET、POST、PUT、...

    学生系统平台的SpringMVC代码

    7. **文件上传与下载**:SpringMVC提供了方便的文件上传和下载支持,通过`MultipartFile`接口处理文件上传,以及`StreamingResponseBody`进行文件下载。 8. **AJAX支持**:SpringMVC通过`@ResponseBody`和`@Request...

    Springmvc中文手册下载

    Spring MVC 提供了处理文件上传和下载的便利功能,支持多文件上传,以及设置文件大小限制。 12. **异步处理** 使用 `@Async` 和 `@EnableAsync` 注解,可以实现 MVC 控制器方法的异步执行,提高应用性能。 13. *...

    springMVC学习资料

    4. **上传下载**:如何处理文件上传和下载,包括MultipartFile的使用和文件大小限制。 5. **国际化与本地化**:配置Spring MVC支持多语言,使用LocaleResolver和MessageSource。 6. **Async处理**:了解异步请求处理...

    SpringMVC面试专题及答案.zip

    SpringMVC支持文件上传功能,通过MultipartFile接口,我们可以方便地处理客户端上传的文件,同时还可以设置上传大小限制和验证文件类型。 九、RESTful风格的API设计 SpringMVC鼓励使用RESTful风格来设计API,通过@...

    精通Spring MVC4 带书签电子版

    8. **上传下载**:介绍MultipartFile接口处理文件上传,以及OutputStream处理文件下载。 9. **拦截器**:学习自定义Interceptor,实现预处理和后处理功能,如登录检查、日志记录等。 10. **国际化与主题**:了解...

    基于SSM的音乐管理网站基于SSM框架整合的一个音乐管理网站项目,

    9. **测试**:项目中可能包含单元测试和集成测试,使用JUnit对单个类进行测试,而Spring Boot的MockMvc则可模拟HTTP请求,测试Controller层的功能。 通过这个音乐管理网站项目,开发者不仅可以深入理解SSM框架的...

    SpringMVC部分【第2天相关资料及源代码】.

    SpringMVC提供MockMVC工具,可以在不启动服务器的情况下进行单元测试和集成测试。 **11. 源代码分析** 在提供的"code"目录下,可能包含了示例代码,这些代码可能展示了如何创建控制器、配置SpringMVC、处理请求等。...

    java面试——SpringMVC面试专题.zip

    使用MultipartFile处理文件上传,而视图可以直接渲染文件流实现文件下载。 8. **异常处理** 可以通过@ControllerAdvice和@ExceptionHandler全局处理异常,提高代码的可维护性。 9. **RESTful风格** SpringMVC...

Global site tag (gtag.js) - Google Analytics