SpringBoot集成JUnit5测试-文件上传的单元测试-《Java笔记》

admin 2025-10-19 05:38:09 编程 来源:ZONE.CI 全球网 0 阅读模式

Java 单元测试

普通接口的单元测试

  1. @SpringBootTest
  2. public class Chapter11ApplicationTests {
  3. private MockMvc mvc;
  4. @Before
  5. public void setUp() {
  6. mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
  7. }
  8. @Test
  9. public void getHello() throws Exception {
  10. mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
  11. .andExpect(status().isOk())
  12. .andExpect(content().string(equalTo("Hello World")));
  13. }
  14. }

这里所用到的核心是MockMvc工具,通过模拟http请求的提交并指定相关的期望返回来完成。对于文件上传接口,本质上还是http请求的处理,所以MockMvc依然逃不掉,就是上传内容发生了改变,只需要去找一下文件上传的模拟对象是哪个,就可以轻松完成。具体写法如下:

  1. @SpringBootTest(classes = Chapter43Application.class)
  2. public class FileTest {
  3. @Autowired
  4. protected WebApplicationContext context;
  5. protected MockMvc mvc;
  6. @BeforeEach
  7. public void setUp() {
  8. mvc = MockMvcBuilders.webAppContextSetup(context).build();
  9. }
  10. @Test
  11. public void uploadFile() throws Exception {
  12. MockMultipartFile file = new MockMultipartFile(
  13. "file",
  14. "hello.txt",
  15. MediaType.TEXT_PLAIN_VALUE,
  16. "Hello, World!".getBytes()
  17. );
  18. final MvcResult result = mvc.perform(
  19. MockMvcRequestBuilders
  20. .multipart("/upload")
  21. .file(file))
  22. .andDo(print())
  23. .andExpect(status().isOk())
  24. .andReturn();
  25. }
  26. }

可以看到MockMvc的测试主体是不变的,无非就是请求类型和请求内容发生了改变。

以太坊cppgolang区别 编程

以太坊cppgolang区别

以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
progolang 编程

progolang

Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
golangn个发送者 编程

golangn个发送者

Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
golang技能图谱 编程

golang技能图谱

从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
评论:0   参与:  0