日誌前說明一點:該日誌只是自我學習的總結與分享,若有侵權請聯繫QQ1556641908,有錯誤請指正,謝謝git
廢話很少說,直接貼代碼,首先是簡單的get請求,github
@GetMapping public List<User> query(@Requestparam String username){ List<User> users = new ArrayList<>(); //構造3個長度的集合 users.add(new User()); users.add(new User()); users.add(new User()); return users; }
測試類web
@RunWith(SpringRunner.class) @SpringBootTest public class UserControllerTest { @Autowired //僞造環境,能夠不啓動tomcat容器,使測試用例更快 private WebApplicationContext wac; private MockMvc mocMvc; @Before //每次執行前僞造容器 public void setup(){ mocMvc = MockMvcBuilders.webAppContextSetup(wac).build(); } @Test public void whenQuerySucess() throws Exception { //模擬發出請求 //請求類型爲get 路徑爲("/user") //指望成功,返回集合,長度爲3 mocMvc.perform(MockMvcRequestBuilders.get("/user") //輸入參數 username .param("username","jojo") //爲get請求設置格式 .contentType(MediaType.APPLICATION_JSON_UTF8)) //指望請求的響應是OK(200),固然也能夠指望其餘狀態,例如4xx .andExpect(MockMvcResultMatchers.status().isOk()) //指望結果長度爲3其中的jsonpath語法,課上github上搜索 .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3));
固然也能夠將結果用String類型接收,相對的加上.andReturn().getResponse.getContentAsString)()json
String result = mocMvc.perform(MockMvcRequestBuilders.get("/user") .param("username","jojo") .contentType(MediaType.APPLICATION_JSON_UTF8)) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) .andReturn().getResponse().getContentAsString(); System.out.println(result);
固然還有谷歌瀏覽器的插件rest client來測試接口,也很方便,可是上面的對於寫測試用例而言,相對方便瀏覽器