• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    如何編寫針對Restful API的測試用例

    今天為大家介紹如何編寫針對Restful API的測試用例,對于Restful API的測試我們可能想到的是通過瀏覽器請求去實現,但是Restful更多的POST、PUT、DELETE是沒辦法通過瀏覽器測試的,因此我們需要測試框架幫我們去完成。

    東西/原料

    • IntelliJ IDEA

    方式/步調

    1. 1

      起首需要引入spring-boot-starter-test,會幫我們把測試框架引入進來。

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
      </dependency>

    2. 2

      起首我們建立一個測試類UserControllerTest,然后加上@RunWith(SpringRunner.class和@SpringBootTest的注解。接下來我們經由過程@Autowired
      private WebApplicationContext wac來偽造web情況。

    3. 3

      然后利用@Before注解來初始化mockMvc,@Before注解會在每個測試用例挪用之前執行。

      @Before
      public void setup() {
         mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
      }

    4. 4

      接下來我們寫一個查詢請求的測試方式,在該方式上添加@Test注解,利用MockMvcRequestBuilders.get()去模擬一個Get請求,MediaType.APPLICATION_JSON_UTF8指定媒體類型,MockMvcResultMatchers.status().isOk()暗示成果,如下所示。

      @Test
      public void testQuery() throws Exception {
         // 模擬一個Get請求
         mockMvc.perform(MockMvcRequestBuilders.get("/user")
             // 媒體類型
         .contentType(MediaType.APPLICATION_JSON_UTF8))
             // 對請求成果的期望
             .andExpect(MockMvcResultMatchers.status().isOk())
             // 期望返回的是一個調集,調集的長度是3
             .andExpect(MockMvcResultMatchers
                 .jsonPath("$.length()")
                 .value(3));
      }

    5. 5

      我們執行該單位測試,可是測試沒有經由過程,原因是因為我們期望的返回碼是200,可是現實返回的是404,是因為我們還沒有編寫一個/user的請求。

    6. 6

      新增一個/user請求的類,返回值為null如下圖所示,執行單位測試后固然不報404的錯誤了,可是測試依舊不經由過程,因為期望的返回值不克不及是null,是以我們在編寫代碼的時辰還要給一個切當的返回值,我們返回有三個對象的list,可以看到經由過程了單位測試。

    7. 7

      若是想在單位測試中添加參數,利用.param()進行參數傳遞,響應的方式中利用@RequestParam注解傳遞參數。

    8. 8

      若是想添加分頁參數到單位測試中,我們在方式中利用Pageable去領受參數,利用@PageableDefault()注解給分頁添加默認值。

      END

    注重事項

    • 可以恰當領會一下jsonPath的寫法。
    • 發表于 2020-02-29 17:00
    • 閱讀 ( 859 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆