zoukankan      html  css  js  c++  java
  • 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());
    	}
    }
    
    
  • 相关阅读:
    LeetCode105 从前序遍历和中序遍历构造二叉树
    LeetCode61 扑克牌中的顺子
    LeetCode141 环形链表
    LeetCode103 二叉树的锯齿形层次遍历
    509 斐波那契数
    剑指29 顺时针打印矩阵
    malloc分配内存2种方式:brk和mmap
    Python学习第139天(Django的分页器(paginator))
    Python学习第138天(Django的用户认真组件)
    Python学习第137天(admin部分参数补充)
  • 原文地址:https://www.cnblogs.com/fjf3997/p/13023552.html
Copyright © 2011-2022 走看看