• MockMvc使用示例类


    MockMvc

    • MockMvc
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = DemoApplication.class)
    public class UserControllerTest {
    	@Autowired
    	private WebApplicationContext wac;
    	private MockMvc mockMvc;
    	@Before
    	public void setup() {
    		mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
    	}
    	@Test
    	public void whenUploadSuccess() throws Exception {
    		String result = mockMvc.perform(fileUpload("/file")
    				// 第一个参数为文件名,第二个参数为上传的原始名字,第四个参数为文件内容
    				.file(new MockMultipartFile("file", "test.txt", "multipart/form-data", "hello upload".getBytes("UTF-8"))))
    				.andExpect(status().isOk())
    				.andReturn().getResponse().getContentAsString();
    		System.out.println(result);
    	}
    	@Test
    	public void whenQuerySuccess() throws Exception {
    		String result = mockMvc.perform(
    				get("/user").param("username", "jojo").param("age", "18").param("ageTo", "60").param("xxx", "yyy")
    						 .param("size", "15")
    						 .param("page", "3")
    						 .param("sort", "age,desc")
    						.contentType(MediaType.APPLICATION_JSON_UTF8))
    				.andExpect(MockMvcResultMatchers.status().isOk())
    			.andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3))
    				.andReturn().getResponse().getContentAsString();
    		System.out.println(result);
    	}
    	@Test
    	public void whenGetInfoSuccess() throws Exception {
    		String result = mockMvc.perform(get("/user/1")
    				.contentType(MediaType.APPLICATION_JSON_UTF8))
    				.andExpect(status().isOk())
    				.andExpect(jsonPath("$.username").value("tom"))
    				.andReturn().getResponse().getContentAsString();
    		
    		System.out.println(result);
    	}
    	@Test
    	public void whenGetInfoFail() throws Exception {
    		mockMvc.perform(get("/user/a")
    				.contentType(MediaType.APPLICATION_JSON_UTF8))
    				.andExpect(status().is4xxClientError());
    	}
    	@Test
    	public void whenCreateSuccess() throws Exception {
    		
    		Date date = new Date();
    		System.out.println(date.getTime());
    		String content = "{"username":"tom","password":null,"birthday":"+date.getTime()+"}";
    		String reuslt = mockMvc.perform(post("/user").contentType(MediaType.APPLICATION_JSON_UTF8)
    				.content(content))
    				.andExpect(status().isOk())
    				.andExpect(jsonPath("$.id").value("1"))
    				.andReturn().getResponse().getContentAsString();
    		
    		System.out.println(reuslt);
    	}
    	@Test
    	public void whenCreateFail() throws Exception {
    		
    		Date date = new Date();
    		System.out.println(date.getTime());
    		String content = "{"username":"tom","password":null,"birthday":"+date.getTime()+"}";
    		String reuslt = mockMvc.perform(post("/user").contentType(MediaType.APPLICATION_JSON_UTF8)
    				.content(content))
    //				.andExpect(status().isOk())
    //				.andExpect(jsonPath("$.id").value("1"))
    				.andReturn().getResponse().getContentAsString();
    		
    		System.out.println(reuslt);
    	}
    	@Test
    	public void whenUpdateSuccess() throws Exception {
    		Date date = new Date(LocalDateTime.now().plusYears(1).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
    		System.out.println(date.getTime());
    		String content = "{"id":"1", "username":"tom","password":null,"birthday":"+date.getTime()+"}";
    		String reuslt = mockMvc.perform(put("/user/1").contentType(MediaType.APPLICATION_JSON_UTF8)
    				.content(content))
    				.andExpect(status().isOk())
    				.andExpect(jsonPath("$.id").value("1"))
    				.andReturn().getResponse().getContentAsString();
    		
    		System.out.println(reuslt);
    	}
    	@Test
    	public void whenDeleteSuccess() throws Exception {
    		mockMvc.perform(delete("/user/1")
    				.contentType(MediaType.APPLICATION_JSON_UTF8))
    				.andExpect(status().isOk());
    	}
    }
    
    
  • 相关阅读:
    NODE 开发 2-3年工作经验 掌握的相关知识
    react 问题
    vue 问题集合 |
    前端实用工具大全, 有任何棘手的实现, 可以来这里拿
    react 入门的好东西 可以做出一个完整的网站
    vue 问题集合
    js 预处理 与 执行 的顺序
    js_6_dom选择
    js_4_函数
    js_3_for_if_try
  • 原文地址:https://www.cnblogs.com/fjf3997/p/13023552.html
Copyright © 2020-2023  润新知