欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring使用RestTemplate和Junit單元測(cè)試的注意事項(xiàng)

 更新時(shí)間:2021年10月28日 09:44:41   作者:盲目的拾荒者  
這篇文章主要介紹了Spring使用RestTemplate和Junit單元測(cè)試的注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用RestTemplate和Junit單元測(cè)試的注意事項(xiàng)

對(duì)于之前寫單元測(cè)試注入的的service,這樣單元測(cè)試也可以跑通。

springboot中的單元測(cè)試

但是如果現(xiàn)在送RestTemplate,代碼如下:

運(yùn)行單元測(cè)試會(huì)報(bào)如下錯(cuò)誤:(拒絕連接)

總結(jié)使用RestTemplate運(yùn)行單元測(cè)試,不同之前的單元測(cè)試。在運(yùn)行之前必須先把項(xiàng)目跑起來,在運(yùn)行單元測(cè)試。

運(yùn)行springboot項(xiàng)目,然后運(yùn)行單元測(cè)試RestTemplate結(jié)果就正常了。

MockMVC和TestRestTemplate的使用與對(duì)比

MockMVC和TestRestTemplate都是測(cè)試RestFul接口的測(cè)試工具,TestRestTemplate可以用WebTestClient代替

MockMVC

MockMVC是模擬出一個(gè)SpringMVC的運(yùn)行環(huán)境,并沒有真正地運(yùn)行一個(gè)完整的Servlet容器。

使用方法

在測(cè)試類上加入@AutoConfigureMockMvc,然后依賴注入MockMvc對(duì)象即可。

特點(diǎn)

1、支持測(cè)試時(shí)數(shù)據(jù)的回滾,這適用于測(cè)試一個(gè)涉及修改數(shù)據(jù)庫數(shù)據(jù)的方法

2、由于MockMVC并沒有真正的啟動(dòng)一個(gè)完整的server服務(wù),故當(dāng)要測(cè)試一些拋出可檢異常并會(huì)返回error page(4開頭的狀態(tài)碼),因?yàn)閑rror page是由Servlet container提供的,所以MockMVC無法測(cè)試這些方法,他還是會(huì)返回200狀態(tài)碼。

RestTemlate

RestTemplate就是啟動(dòng)一個(gè)完整的server。

使用方法

在@SpringBootTest注解上設(shè)置webEnvironment屬性為WebEnvironment.RANDOM_PORT或WebEnvironment.DEFINED_PORT即可

// An highlighted block
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
class RandomPortTestRestTemplateExampleTests {
    @Test
    void exampleTest(@Autowired TestRestTemplate restTemplate) {
        String body = restTemplate.getForObject("/", String.class);
        assertThat(body).isEqualTo("Hello World");
    }
}

特點(diǎn)

1、不支持回滾,因?yàn)檫\(yùn)行測(cè)試方法和server服務(wù)不在同一個(gè)線程,所以無法控制server服務(wù)。

2、可以測(cè)試會(huì)拋出可檢異常的方法。

3、TestRestTemplate目前不支持測(cè)試Patch類型的Http請(qǐng)求,可以用TestWebClient代替。

4、可以將返回結(jié)果反序列化為特定的對(duì)象,MockMVC無法做到,只能將返回的Json數(shù)據(jù)轉(zhuǎn)化為String。

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

相關(guān)文章

  • Java實(shí)現(xiàn)合并word文檔的示例代碼

    Java實(shí)現(xiàn)合并word文檔的示例代碼

    在做項(xiàng)目中,經(jīng)常會(huì)遇到一種情況,需要將一個(gè)小word文檔的內(nèi)容插入到一個(gè)大word(主文檔)中。本文就為大家準(zhǔn)備了Java實(shí)現(xiàn)合并word文檔的方法,需要的可以參考一下
    2022-08-08
  • Maven項(xiàng)目改為spring boot項(xiàng)目的方法圖解

    Maven項(xiàng)目改為spring boot項(xiàng)目的方法圖解

    這篇文章主要介紹了Maven項(xiàng)目改為spring boot項(xiàng)目的方法圖解 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • Java使用Hutool+自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏

    Java使用Hutool+自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏

    我們?cè)谑褂檬謾C(jī)銀行的時(shí)候經(jīng)常能看到APP上會(huì)將銀行卡的卡號(hào)中間部分給隱藏掉使用 ***** 來代替,在某些網(wǎng)站上查看一些業(yè)務(wù)密碼時(shí)(例如簽到密碼等)也會(huì)使用 ***** 來隱藏掉真正的密碼,那么這種方式是如何實(shí)現(xiàn)的呢,本文將給大家介紹使用Hutool+自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏
    2023-09-09
  • Java中線程的等待與喚醒_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java中線程的等待與喚醒_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    在Object.java中,定義了wait(), notify()和notifyAll()等接口。wait()的作用是讓當(dāng)前線程進(jìn)入等待狀態(tài),同時(shí),wait()也會(huì)讓當(dāng)前線程釋放它所持有的鎖。下面通過本文給大家介紹Java中線程的等待與喚醒知識(shí),感興趣的朋友一起看看吧
    2017-05-05
  • IDEA中WebService生成Java代碼并調(diào)用外部接口實(shí)現(xiàn)代碼

    IDEA中WebService生成Java代碼并調(diào)用外部接口實(shí)現(xiàn)代碼

    這篇文章主要介紹了IDEA中WebService生成Java代碼并調(diào)用外部接口實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Java 中分形圖的幾種方法詳解

    Java 中分形圖的幾種方法詳解

    這篇文章主要介紹了Java 中幾種分形的方法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 使用Log4j為項(xiàng)目配置日志輸出應(yīng)用詳解以及示例演示的實(shí)現(xiàn)分析

    使用Log4j為項(xiàng)目配置日志輸出應(yīng)用詳解以及示例演示的實(shí)現(xiàn)分析

    本篇文章是對(duì)Log4j為項(xiàng)目配置日志輸出應(yīng)用詳解以及示例演示的實(shí)現(xiàn)進(jìn)行了分析介紹,需要的朋友參考下
    2013-05-05
  • SpringBoot集成SpringSecurity和JWT做登陸鑒權(quán)的實(shí)現(xiàn)

    SpringBoot集成SpringSecurity和JWT做登陸鑒權(quán)的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot集成SpringSecurity和JWT做登陸鑒權(quán)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • mybatis如何返回某列的最大值

    mybatis如何返回某列的最大值

    這篇文章主要介紹了mybatis如何返回某列的最大值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 深入了解Java設(shè)計(jì)模式之UML類圖

    深入了解Java設(shè)計(jì)模式之UML類圖

    UML?即?Unified?Modeling?Language?統(tǒng)一建模語言,是用來設(shè)計(jì)軟件的可視化建模語言。本文就帶大家了解一下UML中類圖的定義與使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11

最新評(píng)論