最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

單元測(cè)試 @mock與@SpringBootTest的使用

 更新時(shí)間:2021年10月14日 15:14:35   作者:程序~人生  
這篇文章主要介紹了單元測(cè)試 @mock與@SpringBootTest的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在寫單元測(cè)試的過程中我們會(huì)發(fā)現(xiàn)需要測(cè)試的類有很多依賴,這些依賴的類或者資源又會(huì)有依賴,導(dǎo)致在單元測(cè)試代碼里無法完成構(gòu)建,我們應(yīng)對(duì)的方法是Mock。

簡(jiǎn)單的說就是模擬這些需要構(gòu)建的類或者資源,提供給需要測(cè)試的對(duì)象使用。

一.單元測(cè)試工具mock使用

1.引入依賴包

2.mock測(cè)試類

二.springboot使用@SpringBootTest單元測(cè)試

1.引入依賴包

2.測(cè)試類

三.mock和@springBootTest區(qū)別

1.mock進(jìn)行單元測(cè)試不依賴spring的bean定義文件

不需要啟動(dòng)web服務(wù),執(zhí)行起來速度很快。

2.@springBootTest需要啟動(dòng)服務(wù)

執(zhí)行真正的操作,執(zhí)行速度慢,當(dāng)需要真正的dao層操作時(shí)可選此測(cè)試方式。

單元測(cè)試--SpringbootTest和MockMvc

SpringbootTest

基于Junit 的Test

import junit.framework.TestCase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)    //底層用junit的 SpringJUnit4ClassRunner
@SpringBootTest(classes = {XdclassSpringbootApplication.class})
public class XdclassSpringbootApplicationTests {
    @Test
    public void testOne() {
        System.out.println("start test");
        Assert.assertEquals(1,1);
        TestCase.assertEquals(1,2);
    }
}

當(dāng)然也可以使用 @Before 和 @After , 和 junit 的測(cè)試一樣。

啟動(dòng)類是必須要有的。

當(dāng)有多個(gè) @Test 的方法,需要一起執(zhí)行的時(shí)候, 執(zhí)行 XdclassSpringbootApplicationTests 這個(gè)類的 run或debug。

Assert 和 TestCase 都是 斷言,用法一樣。

MockMvc類的使用和模擬Http請(qǐng)求

相關(guān)API:

  • perform:執(zhí)行一個(gè)RequestBuilder請(qǐng)求
  • andExpect:添加ResultMatcher->MockMvcResultMatchers驗(yàn)證規(guī)則
  • andReturn:最后返回相應(yīng)的MvcResult->Response
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
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.result.MockMvcResultMatchers;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MockMvcTestDemo {
    @Autowired
    private MockMvc mockMvc;
    @Test
    public void apiTest(){
        try {
            MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/hello"))
                    .andExpect(MockMvcResultMatchers.status().isOk())            .andReturn();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring的AOP極簡(jiǎn)入門

    Spring的AOP極簡(jiǎn)入門

    今天小編就為大家分享一篇關(guān)于Spring的AOP極簡(jiǎn)入門,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java單例模式的深入了解

    Java單例模式的深入了解

    這篇文章主要為大家介紹了Java單例模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • springboot?實(shí)現(xiàn)不同context-path下的會(huì)話共享

    springboot?實(shí)現(xiàn)不同context-path下的會(huì)話共享

    這篇文章主要介紹了springboot?實(shí)現(xiàn)不同context-path下的會(huì)話共享,基于很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java多線程使用mdc追蹤日志方式

    java多線程使用mdc追蹤日志方式

    這篇文章主要介紹了java多線程使用mdc追蹤日志方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法

    從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法

    今天小編就為大家分享一篇關(guān)于從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java連接數(shù)據(jù)庫(代碼分享)

    java連接數(shù)據(jù)庫(代碼分享)

    本文主要介紹了java連接數(shù)據(jù)庫的實(shí)現(xiàn)方法代碼。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • SpringBoot監(jiān)聽器的實(shí)現(xiàn)示例

    SpringBoot監(jiān)聽器的實(shí)現(xiàn)示例

    在SpringBoot中,你可以使用監(jiān)聽器來響應(yīng)特定的事件,本文主要介紹了SpringBoot監(jiān)聽器的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 基于接口實(shí)現(xiàn)java動(dòng)態(tài)代理示例

    基于接口實(shí)現(xiàn)java動(dòng)態(tài)代理示例

    這篇文章主要介紹了基于接口實(shí)現(xiàn)java動(dòng)態(tài)代理示例,需要的朋友可以參考下
    2014-04-04
  • Java調(diào)用echarts提供的地圖壓縮方法來壓縮地圖

    Java調(diào)用echarts提供的地圖壓縮方法來壓縮地圖

    今天小編就為大家分享一篇關(guān)于Java調(diào)用echarts提供的地圖壓縮方法來壓縮地圖,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Springboot3.3 整合Cassandra 4.1.5的詳細(xì)過程

    Springboot3.3 整合Cassandra 4.1.5的詳細(xì)過程

    這篇文章主要介紹了Springboot3.3 整合Cassandra 4.1.5的詳細(xì)過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評(píng)論

芦山县| 安塞县| 古浪县| 德江县| 获嘉县| 临湘市| 新兴县| 高安市| 德州市| 滁州市| 鹿邑县| 格尔木市| 大邑县| 汾西县| 闽侯县| 黄梅县| 镇远县| 天气| 沁阳市| 临桂县| 罗定市| 乐安县| 长春市| 长岛县| 望奎县| 伊宁市| 思南县| 青岛市| 锦州市| 阳高县| 遂溪县| 探索| 开阳县| 涞水县| 册亨县| 姜堰市| 永福县| 正宁县| 库伦旗| 永定县| 边坝县|