Spring Boot(四):單元測試(工程師必備素養)之API測試

一、API的單元測試

1.首先創建test類,上一篇博客講的是手動創建,這裏講自動創建

1)在需要創建單元測試的controller上右擊選——>go to——>test

這裏寫圖片描述

2)選create

這裏寫圖片描述

3)選擇需要單元測試的方法,我這裏就一個

這裏寫圖片描述

4)創建成功

這裏寫圖片描述

2.添加註入的信息和填充方法,如下

packagecom.example.demo.controller;

importorg.junit.Test;

importorg.junit.runner.RunWith;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;

importorg.springframework.boot.test.context.SpringBootTest;

importorg.springframework.test.context.junit4.SpringRunner;

importorg.springframework.test.web.servlet.MockMvc;

importorg.springframework.test.web.servlet.request.MockMvcRequestBuilders;

importorg.springframework.test.web.servlet.result.MockMvcResultHandlers;

importorg.springframework.test.web.servlet.result.MockMvcResultMatchers;

import staticorg.junit.Assert.*;

@RunWith(SpringRunner.class)//表明要在測試環境跑了,底層使用的junit測試工具

@SpringBootTest

@AutoConfigureMockMvc

public classUserControllerTest {

//引入MockMvc

@Autowired

privateMockMvcmvc;

@Test

public voidassetsSummary()throwsException {

mvc.perform(MockMvcRequestBuilders.get("/login"))

.andExpect(MockMvcResultMatchers.status().isOk());

}

}

解釋:

@AutoConfigureMockMvc啓動的時候自動注入MockMvc

MockMvc的一些屬性如下:

perform:執行一個RequestBuilder請求,會自動執行SpringMVC的流程並映射到相應的控制器執行處理;

andExpect:添加ResultMatcher驗證規則,驗證控制器執行完成後結果是否正確;

andDo:添加ResultHandler結果處理器,比如調試時打印結果到控制檯;

andReturn:最後返回相應的MvcResult;然後進行自定義驗證/進行下一步的異步處理;

擴展:具體詳細屬性可參考:

http://www.cnblogs.com/lyy-2016/p/6122144.html

添加一些屬性執行結果如下:

這裏寫圖片描述

3.run的正確結果

這裏寫圖片描述

4.更改url,繼續run,錯誤結果

這裏寫圖片描述

404,不存在該地址

二、pakage或者install時,單元測試的執行順序

1)單元測試通過,才能pakage或install成功

執行命令mvn install或mvn pakage,生成可執行jar包時會進行單元測試

先執行單元測試,單元測試通過

這裏寫圖片描述

BUILD SUCCESS

這裏寫圖片描述

2)修改UserControllerTest中需要測試的url的路徑

若單元測試不通過,install不成功

這裏寫圖片描述

這裏寫圖片描述

注意:mvn compile編譯的時候不會執行單元測試,大家可以試驗一下

三、總結

單元測試雖然容易掌握,但是誰又能對自己所寫的接口在發佈之前全部通過單元測試呢?單元測試,是開發者的一個基本素質,關於他的使用,還需要好好好思考一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章