Spring Boot之路[5]--基礎(chǔ)單元測試

專題簡介

SpringBoot之路專題是一個記錄本人在使用Spring和SpringBoot相關(guān)技術(shù)中所遇到的問題和要解決的問題。每用到一處知識點,就會把這處知識補充到Github一個對應(yīng)的分支上。會以專題的方式,力爭每一篇博客,由淺入深,把每個知識點講解到實戰(zhàn)級別,并且分析Spring源碼。整個項目會以一個開發(fā)一個博客系統(tǒng)為最終目標(biāo),每一個分支都記錄著一步一步搭建的過程。與大家分享,代碼會同步發(fā)布到這里。

閱讀本片文章大約需要5分鐘

1. 概念

  1. 什么是單元測試
    單元測試,一種基本的軟件測試方法。維基百科給出的解釋如下:

在計算機編程中,單元測試(英語:Unit Testing)又稱為模塊測試, 是針對程序模塊(軟件設(shè)計的最小單位)來進行正確性檢驗的測試工作。 程序單元是應(yīng)用的最小可測試部件。

  1. 應(yīng)用于什么場景、解決了什么問題
    適用于大型項目,多人開發(fā),有持續(xù)集成(CI)的項目。單元測試可以很好的保證項目的穩(wěn)定性和代碼質(zhì)量。在這里,使用Mock的方式,對相關(guān)的api或頁面進行單元測試。

2. 實戰(zhàn)

  1. 可運行的代碼
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
@SpringBootApplication
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)// 1
public class IndexControllerTest {

    private MockMvc mockMvc;// 2

    @Autowired
    private WebApplicationContext webApplicationContext; // 3

    @Before
    public void before() {
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); // 4
    }

    @Test
    public void testIndex() throws Exception {
        MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/")).andReturn(); // 5

        int status = mvcResult.getResponse().getStatus(); // 6
        String responseString = mvcResult.getResponse().getContentAsString(); // 7

        Assert.assertEquals("return status not equals 200", 200, status); // 8
        Assert.assertEquals("response string not equalse ", "Hello Spring boot", responseString); // 9
    }
}
  1. 代碼串講
    1.引入單元測試相關(guān)支持類
    2.聲明MockMvc
    3.聲明WebApplicationContext
    4.初始化MockMvc
    5.使用MockMvc進行調(diào)用
    6.獲取Http Status
    7.獲得ResponseString
    8.使用斷言進行判斷
    9.使用斷言進行判斷
  2. 運行截圖
運行截圖,紅框中為運行結(jié)果

3. 寫在后面

單元測試是一種保障軟件質(zhì)量的非常重要的方法和手段,大家不要因為時間因素等忽略了單元測試。如果想要代碼足夠健壯,以后少給自己留坑,建議多重視單元測試。甚至建議大家采用TDD的方式進行開發(fā)。

最后,歡迎大家在github上點Star,項目有更新后,都會第一時間收到通知。代碼在這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容