mock api測試demo


前言

  本測試demo基於Spring框架測試,這幾個月也是剛剛接觸Spring的項目。如果不對的地方請多諒解。

正文

  1、創建測試類,添加注解

    @RunWith(SpringRunner.class)
    @SpringBootTest
 2、 添加自己要測試Controller作為成員變量,同時將我們自己的Mock類添加作為成員變量,目的是通過它來調用我們的api。我們自己的mock中引用的是MockMvc這個類,在org.springframework.test.web.servlet包下面。
   在我們自己封裝mock中的構造函數中來啟動controller
   
   public MockMvcCore(Object... controllers) {
    if (mockMvc == null) {
    mockMvc = MockMvcBuilders.standaloneSetup(controllers).build();
    }
   }
3、編寫我們自己的調用測試方法
    1、調用時候需要MockHttpServletRequestBuilder類,通過它來獲取我們的請求方式:put,get,post,delete。直接點的方式就有這些方法,參數為我們的url地址。
     MockMvcRequestBuilders.get(url)
    2、MockHttpServletRequestBuilder.params(parameters);這個方法來設置我們的參入的參數,參數為Map類型;其中還有很多的方法,可以進行設置我們的請求內容。
      mockHttpServletRequestBuilder.contentType(MediaType.APPLICATION_JSON);
      mockHttpServletRequestBuilder.content(requestBody);
    3、發起請求
ResultActions resultActions = mockMvc(就是MockMvc類).perform(mockHttpServletRequestBuilder);

    4、拿到請求的結果 MvcResult result = resultActions.andReturn();這個時候就拿到結果了,是整體的結果。
    5、最后拿到api相應的返回內容 result.getResponse().getContentAsString();
  一般項目中都是要封裝起來的以上的過程,是我從項目的封裝分析處理的也就是沒有面向對象的一個順序。下面就是按照上面步驟的一個測試api方法。
  
    @Test
    public void test() throws Exception{

     MockMvc m = MockMvcBuilders.standaloneSetup(myController).build();
     MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("myUrl");
     MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
     parameters.add("參數字段名","參數字段值");
     builder.params(parameters);
     ResultActions actions = m.perform(builder);
     MvcResult result = actions.andReturn();
     String content = result.getResponse().getContentAsString();
    }


 總結     

          大致就這么一個簡單過程,封裝起來就可以靈活應用了。也是第一次用Mock寫測試,還請諒解。


        Life is a journey. What we should care about is not where it's headed but what we see and how we feel


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM