国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

靜態(tài)方法 單元測(cè)試 springboot+mokito+junit5

這篇具有很好參考價(jià)值的文章主要介紹了靜態(tài)方法 單元測(cè)試 springboot+mokito+junit5。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

CodecUtils的方法是靜態(tài)類,使用@InjectMocks不能有用,因?yàn)檫@個(gè)注解只能用于非靜態(tài)的對(duì)象。

想要為靜態(tài)方法寫單元測(cè)試,可以使用Mockito.mockStatic(Class classToMock)方法,它可以返回一個(gè)MockedStatic對(duì)象,用于模擬靜態(tài)方法的調(diào)用。

1.導(dǎo)入依賴

<dependency>
   <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-test</artifactId>
    <version>2.1.18.RELEASE</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>


<dependency> 
    <groupId>org.mockito</groupId>     
    <artifactId>mockito-junit-jupiter</artifactId> 
    <version>5.3.1</version> 
    <scope>test</scope>
 </dependency> 


<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>4.1.0</version>
    <scope>test</scope>
</dependency>


<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-inline</artifactId>
    <version>4.1.0</version>
    <scope>test</scope>
</dependency>
           

2.單元測(cè)試

import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
import org.mockito.Mockito;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;

class CodecUtilsTest {

    @Test
    void testBytesToBinary() {
        byte[] bytes = {1, 2, 3};
        String expected = "000000010000001000000011";
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.bytesToBinary(bytes)).thenReturn(expected);
            String actual = CodecUtils.bytesToBinary(bytes);
            assertEquals(expected, actual);
            mocked.verify(() -> CodecUtils.bytesToBinary(bytes));
        }
    }

    @Test
    void testBinaryToBytes() {
        String binary = "000000010000001000000011";
        byte[] expected = {1, 2, 3};
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.binaryToBytes(binary)).thenReturn(expected);
            byte[] actual = CodecUtils.binaryToBytes(binary);
            assertArrayEquals(expected, actual);
            mocked.verify(() -> CodecUtils.binaryToBytes(binary));
        }
    }

    @Test
    void testBytesToHex() {
        byte[] bytes = {1, 2, 3};
        String expected = "010203";
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.bytesToHex(bytes)).thenReturn(expected);
            String actual = CodecUtils.bytesToHex(bytes);
            assertEquals(expected, actual);
            mocked.verify(() -> CodecUtils.bytesToHex(bytes));
        }
    }

    @Test
    void testHexToBytes() throws Exception {
        String hex = "010203";
        byte[] expected = {1, 2, 3};
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.hexToBytes(hex)).thenReturn(expected);
            byte[] actual = CodecUtils.hexToBytes(hex);
            assertArrayEquals(expected, actual);
            mocked.verify(() -> CodecUtils.hexToBytes(hex));
        }
    }

    @Test
    void testBytesToDecimal() {
        byte[] bytes = {1, 2, 3};
        String expected = "66051";
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.bytesToDecimal(bytes)).thenReturn(expected);
            String actual = CodecUtils.bytesToDecimal(bytes);
            assertEquals(expected, actual);
            mocked.verify(() -> CodecUtils.bytesToDecimal(bytes));
        }
    }

    @Test
    void testDecimalToBytes() {
        String decimal = "66051";
        byte[] expected = {1, 2, 3};
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.decimalToBytes(decimal)).thenReturn(expected);
            byte[] actual = CodecUtils.decimalToBytes(decimal);
            assertArrayEquals(expected, actual);
            mocked.verify(() -> CodecUtils.decimalToBytes(decimal));
        }
    }

    @Test
    void testBytesToAscii() {
        byte[] bytes = {65, 66, 67};
        String expected = "ABC";
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.bytesToAscii(bytes)).thenReturn(expected);
            String actual = CodecUtils.bytesToAscii(bytes);
            assertEquals(expected, actual);
            mocked.verify(() -> CodecUtils.bytesToAscii(bytes));
        }
    }

    @Test
    void testAsciiToBytes() {
        String ascii = "ABC";
        byte[] expected = {65, 66, 67};
        try (MockedStatic<CodecUtils> mocked = Mockito.mockStatic(CodecUtils.class)) {
            mocked.when(() -> CodecUtils.asciiToBytes(ascii)).thenReturn(expected);
            byte[] actual = CodecUtils.asciiToBytes(ascii);
            assertArrayEquals(expected, actual);
            mocked.verify(() -> CodecUtils.asciiToBytes(ascii));
        }
    }
}

可以參考如下地址,了解如何使用Mockito.mockStatic方法。
① Mocking Static Methods With Mockito | Baeldung.
另外,可以使用PowerMockito工具來(lái)模擬靜態(tài)方法,但是它需要額外的配置和依賴??梢圆榭慈缦禄卮?。
② java - Mockito InjectMocks into static object - Stack Overflow.
③ unit testing - Java Mockito inject a static class - Stack Overflow.文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-857833.html

到了這里,關(guān)于靜態(tài)方法 單元測(cè)試 springboot+mokito+junit5的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot 實(shí)戰(zhàn):JUnit5+MockMvc+Mockito 做好單元測(cè)試

    SpringBoot 實(shí)戰(zhàn):JUnit5+MockMvc+Mockito 做好單元測(cè)試

    因?yàn)槔^承了 spring-boot-starter-parent ,所以我們依賴的 spring-boot-starter-test 不需要寫具體的版本,可以直接集成父級(jí)的版本定義。其中, spring-boot-starter-web 是用于提供 REST API 的 web 容器, spring-boot-starter-test 可以提供各種測(cè)試框架的, spring-boot-maven-plugin 是將 SpringBoot 應(yīng)用打包為

    2024年04月15日
    瀏覽(28)
  • 如何在 Java 中使用JUnit5進(jìn)行單元測(cè)試和自動(dòng)化測(cè)試

    單元測(cè)試和自動(dòng)化測(cè)試是現(xiàn)代軟件開發(fā)過(guò)程中必不可少的環(huán)節(jié),可以提高代碼質(zhì)量和開發(fā)效率。JUnit5是Java中流行的單元測(cè)試框架,本文將介紹如何在Java中使用JUnit5進(jìn)行單元測(cè)試和自動(dòng)化測(cè)試。 單元測(cè)試是一種測(cè)試方法,用于對(duì)軟件系統(tǒng)中的最小可測(cè)試單元進(jìn)行測(cè)試。這些單

    2024年02月05日
    瀏覽(26)
  • springboot項(xiàng)目使用Junit5 + mockito + jacoco 實(shí)現(xiàn)單元測(cè)試以及代碼覆蓋率檢查

    在創(chuàng)建springboot項(xiàng)目時(shí)會(huì)默認(rèn)添加spring-boot-starter-test依賴,其中已經(jīng)包含了junit、mockito依賴,根據(jù)springboot版本的不同junit和mockito的版本也會(huì)有所不同 先說(shuō)一下各自功能: junit只說(shuō)一點(diǎn),junt4和junit5的注解不同,使用方式略有差異,其他不贅述了,基本用法都懂。 mockito是mock的

    2023年04月23日
    瀏覽(32)
  • 單元測(cè)試框架——Junit5

    單元測(cè)試框架——Junit5

    Junit是一個(gè)開源的用于Java語(yǔ)言的單元測(cè)試框架,也是Java方向使用最廣泛的單元測(cè)試框架。 在pom.xml中引入Junit5相關(guān)依賴 @Test :表示一個(gè)方法/用例 BeforeEach :表示被注解的方法在其它所有方法執(zhí)行前都要執(zhí)行一遍,也就是說(shuō)其它方法有3個(gè)它就要執(zhí)行3遍 @BeforeAll :表示被注解的

    2024年02月11日
    瀏覽(25)
  • JUnit5-單元測(cè)試操作詳解

    JUnit5-單元測(cè)試操作詳解

    JUnit 5是JUnit測(cè)試框架的下一個(gè)主要版本,用于編寫和運(yùn)行單元測(cè)試。 與以前版本的 JUnit 不同,JUnit 5 由來(lái)自三個(gè)不同子項(xiàng)目的多個(gè)不同模塊組成。 JUnit 5 =? JUnit 平臺(tái) +? JUnit Jupiter ?+? JUnit Vintage JUnit 平臺(tái) 是在 JVM 上啟動(dòng)測(cè)試框架的基礎(chǔ)。它還定義了 TestEngine 用于開發(fā)在平臺(tái)

    2024年04月10日
    瀏覽(36)
  • Junit5單元測(cè)試框架詳解

    Junit5單元測(cè)試框架詳解

    前面我們學(xué)習(xí)了Selenium自動(dòng)化測(cè)試框架,但是有的時(shí)候測(cè)試用例會(huì)很多,我們需要一個(gè)工具來(lái)管理這些測(cè)試用例,而Junit就是一個(gè)很好的管理工具,簡(jiǎn)單點(diǎn)來(lái)說(shuō),Junit就是一個(gè)針對(duì)Java的單元測(cè)試框架; 目錄 一.?關(guān)于Junit5 二. Junit使用 2.1 添加Maven依賴 2.2 注解 2.3 斷言 2.4 套件

    2024年02月06日
    瀏覽(27)
  • Junit5+Mockito單元測(cè)試詳解

    Junit5+Mockito單元測(cè)試詳解

    1.宏觀層面:AIR原則 A:Automatic(自動(dòng)化) 全自動(dòng)執(zhí)行,輸出結(jié)果無(wú)需人工檢查,而是通過(guò)斷言驗(yàn)證。 I:Independent(獨(dú)立性) 分層測(cè)試,各層之間不相互依賴。 R:Repeatable(可重復(fù)) 可重復(fù)執(zhí)行,不受外部環(huán)境( 網(wǎng)絡(luò)、服務(wù)、中間件等)影響。 2.微觀層面:BCDE原則 B: Bord

    2024年01月17日
    瀏覽(33)
  • 【Junit】單元測(cè)試Mock靜態(tài)方法

    【Junit】單元測(cè)試Mock靜態(tài)方法

    開發(fā)依賴 版本 Spring Boot 3.0.6 JDK 20 如果沒(méi)有引入 mockito-inline 這個(gè)依賴,使用mock靜態(tài)方法,則會(huì)拋這個(gè)異常

    2024年02月04日
    瀏覽(24)
  • 單元測(cè)試junit(原始版本、Spring Boot各版本、junit5)使用介紹

    單元測(cè)試junit(原始版本、Spring Boot各版本、junit5)使用介紹

    ?? 簡(jiǎn)介:java系列技術(shù)分享(??持續(xù)更新中…??) ?? 初衷:一起學(xué)習(xí)、一起進(jìn)步、堅(jiān)持不懈 ?? 如果文章內(nèi)容有誤與您的想法不一致,歡迎大家在評(píng)論區(qū)指正?? ?? 希望這篇文章對(duì)你有所幫助,歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? ?? 更多文章請(qǐng)點(diǎn)擊 單元測(cè)試 junit各版本 使用介紹 官

    2023年04月16日
    瀏覽(32)
  • 深度揭秘JUnit5與Mockito的單元測(cè)試神秘面紗

    深度揭秘JUnit5與Mockito的單元測(cè)試神秘面紗

    在今天的學(xué)習(xí)中,我們將深入研究 JUnit 和Mockito,這是 Java 開發(fā)中最強(qiáng)大的 單元測(cè)試 工具之一。通過(guò)學(xué)習(xí)如何編寫清晰、高效的單元測(cè)試,我們將揭開單元測(cè)試的神秘面紗,助力你在項(xiàng)目中寫出更健壯的代碼。 提示: 今天的代碼是在第九天代碼的基礎(chǔ)上進(jìn)行開發(fā),我們將為

    2024年02月02日
    瀏覽(33)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包