web項目的簡單測試用例的書寫之僞造容器

日誌前說明一點:該日誌只是自我學習的總結與分享,若有侵權請聯繫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來測試接口,也很方便,可是上面的對於寫測試用例而言,相對方便瀏覽器

相關文章
相關標籤/搜索