springboot1.5.x 测试sample
1 /** 2 * 3 */ 4 package com.imooc.web.controller; 5 6 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; 7 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload; 8 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; 9 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; 10 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; 11 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; 12 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; 13 14 import java.time.LocalDateTime; 15 import java.time.ZoneId; 16 import java.util.Date; 17 18 import org.junit.Before; 19 import org.junit.Test; 20 import org.junit.runner.RunWith; 21 import org.springframework.beans.factory.annotation.Autowired; 22 import org.springframework.boot.test.context.SpringBootTest; 23 import org.springframework.http.MediaType; 24 import org.springframework.mock.web.MockMultipartFile; 25 import org.springframework.test.context.junit4.SpringRunner; 26 import org.springframework.test.web.servlet.MockMvc; 27 import org.springframework.test.web.servlet.setup.MockMvcBuilders; 28 import org.springframework.web.context.WebApplicationContext; 29 30 /** 31 * @author zhailiang 32 * 33 */ 34 @RunWith(SpringRunner.class) 35 @SpringBootTest 36 public class UserControllerTest { 37 38 @Autowired 39 private WebApplicationContext wac; 40 41 private MockMvc mockMvc; 42 43 @Before 44 public void setup() { 45 mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); 46 } 47 48 @Test 49 public void whenUploadSuccess() throws Exception { 50 String result = mockMvc.perform(fileUpload("/file") 51 .file(new MockMultipartFile("file", "test.txt", "multipart/form-data", "hello upload".getBytes("UTF-8")))) 52 .andExpect(status().isOk()) 53 .andReturn().getResponse().getContentAsString(); 54 System.out.println(result); 55 } 56 57 58 @Test 59 public void whenQuerySuccess() throws Exception { 60 String result = mockMvc.perform( 61 get("/user").param("username", "jojo").param("age", "18").param("ageTo", "60").param("xxx", "yyy") 62 // .param("size", "15") 63 // .param("page", "3") 64 // .param("sort", "age,desc") 65 .contentType(MediaType.APPLICATION_JSON_UTF8)) 66 .andExpect(status().isOk()).andExpect(jsonPath("$.length()").value(3)) 67 .andReturn().getResponse().getContentAsString(); 68 69 System.out.println(result); 70 } 71 72 @Test 73 public void whenGetInfoSuccess() throws Exception { 74 String result = mockMvc.perform(get("/user/1") 75 .contentType(MediaType.APPLICATION_JSON_UTF8)) 76 .andExpect(status().isOk()) 77 .andExpect(jsonPath("$.username").value("tom")) 78 .andReturn().getResponse().getContentAsString(); 79 80 System.out.println(result); 81 } 82 83 @Test 84 public void whenGetInfoFail() throws Exception { 85 mockMvc.perform(get("/user/a") 86 .contentType(MediaType.APPLICATION_JSON_UTF8)) 87 .andExpect(status().is4xxClientError()); 88 } 89 90 @Test 91 public void whenCreateSuccess() throws Exception { 92 93 Date date = new Date(); 94 System.out.println(date.getTime()); 95 String content = "{\"username\":\"tom\",\"password\":null,\"birthday\":"+date.getTime()+"}"; 96 String reuslt = mockMvc.perform(post("/user").contentType(MediaType.APPLICATION_JSON_UTF8) 97 .content(content)) 98 .andExpect(status().isOk()) 99 .andExpect(jsonPath("$.id").value("1")) 100 .andReturn().getResponse().getContentAsString(); 101 102 System.out.println(reuslt); 103 } 104 105 @Test 106 public void whenCreateFail() throws Exception { 107 108 Date date = new Date(); 109 System.out.println(date.getTime()); 110 String content = "{\"username\":\"tom\",\"password\":null,\"birthday\":"+date.getTime()+"}"; 111 String reuslt = mockMvc.perform(post("/user").contentType(MediaType.APPLICATION_JSON_UTF8) 112 .content(content)) 113 // .andExpect(status().isOk()) 114 // .andExpect(jsonPath("$.id").value("1")) 115 .andReturn().getResponse().getContentAsString(); 116 117 System.out.println(reuslt); 118 } 119 120 @Test 121 public void whenUpdateSuccess() throws Exception { 122 123 Date date = new Date(LocalDateTime.now().plusYears(1).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); 124 System.out.println(date.getTime()); 125 String content = "{\"id\":\"1\", \"username\":\"tom\",\"password\":null,\"birthday\":"+date.getTime()+"}"; 126 String reuslt = mockMvc.perform(put("/user/1").contentType(MediaType.APPLICATION_JSON_UTF8) 127 .content(content)) 128 .andExpect(status().isOk()) 129 .andExpect(jsonPath("$.id").value("1")) 130 .andReturn().getResponse().getContentAsString(); 131 132 System.out.println(reuslt); 133 } 134 135 @Test 136 public void whenDeleteSuccess() throws Exception { 137 mockMvc.perform(delete("/user/1") 138 .contentType(MediaType.APPLICATION_JSON_UTF8)) 139 .andExpect(status().isOk()); 140 } 141 142 }