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

PowerMock使用-Mock私有方法

這篇具有很好參考價值的文章主要介紹了PowerMock使用-Mock私有方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

本篇文章將說明如何使用PowerMock對私有方法進(jìn)行Mock。關(guān)于使用PowerMock需要引入哪些依賴,請參考PowerMock使用-依賴準(zhǔn)備。

正文

被測試類如下所示。

public class MockPrivateMethod {

    public boolean isTrue() {
        return returnTrue();
    }

    private boolean returnTrue() {
        return true;
    }

}

被測試類中有一個公共方法isTrue(),在isTrue()方法中會調(diào)用MockPrivateMethod的私有方法returnTrue()。測試類如下所示。

@RunWith(PowerMockRunner.class)
@PrepareForTest(MockPrivateMethod.class)
public class PowerMockTest {

    @Test
    public void mockPrivate() throws Exception {
        MockPrivateMethod mockPrivateMethod = PowerMockito.mock(MockPrivateMethod.class);
        PowerMockito.when(mockPrivateMethod, "returnTrue").thenReturn(false);
        PowerMockito.when(mockPrivateMethod.isTrue()).thenCallRealMethod();
        assertThat(mockPrivateMethod.isTrue(), is(false));
    }

}

Mock私有方法打樁時,需要使用PowerMockito.when(mock實例, "私有方法名").thenReturn(期望返回值)的形式設(shè)置mock實例的私有方法的返回值,如果私有方法有參數(shù),還需要在私有方法名后面添加參數(shù)占位符,比如PowerMockito.when(mock實例, "私有方法名", anyInt()).thenReturn(期望返回值)。上面例子中進(jìn)行斷言時,調(diào)用私有方法采取了調(diào)用公共方法來間接調(diào)用私有方法的形式,單元測試代碼對業(yè)務(wù)代碼造成了入侵,因此如果僅僅只是為了驗證一個私有方法,可以使用Whitebox來方便的調(diào)用私有方法,如下所示。文章來源地址http://www.zghlxwxcb.cn/news/detail-504624.html

public class MockPrivateMethod {

    private boolean returnTrue() {
        return true;
    }

}

@RunWith(PowerMockRunner.class)
@PrepareForTest(MockPrivateMethod.class)
public class PowerMockTest {

    @Test
    public void mockPrivate() throws Exception {
        MockPrivateMethod mockPrivateMethod = PowerMockito.mock(MockPrivateMethod.class);
        PowerMockito.when(mockPrivateMethod, "returnTrue").thenReturn(false);
        assertThat(Whitebox.invokeMethod(mockPrivateMethod, "returnTrue"),
                is(false));
    }

}

到了這里,關(guān)于PowerMock使用-Mock私有方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • PowerMock使用-Spy公共方法

    本篇文章將說明如何使用 PowerMock 對公共方法進(jìn)行 Spy 。關(guān)于使用 PowerMock 需要引入哪些依賴,請參考PowerMock使用-依賴準(zhǔn)備。 先給出一個示例,再對 Spy 進(jìn)行解釋。被測試類如下所示。 測試類如下所示。 Spy 公共方法時需要使用 PowerMockito.spy(方法所在類的實例) 獲取 Spy 出來的

    2024年02月05日
    瀏覽(14)
  • 使用 gomonkey Mock 函數(shù)及方法

    在 Golang 語言中,寫單元測試的時候,不可避免的會涉及到對其他函數(shù)及方法的 Mock,即在假設(shè)其他函數(shù)及方法響應(yīng)預(yù)期結(jié)果的同時,校驗被測函數(shù)的響應(yīng)是否符合預(yù)期。 其中,在 Mock 其他函數(shù)及方法的時候,我們常用到的一個測試類庫是「gomonkey」。特別地,對于方法和函數(shù)

    2024年02月01日
    瀏覽(13)
  • Mock.js的基本使用方法

    Mock.js的基本使用方法

    官網(wǎng)網(wǎng)址:Mock.js (mockjs.com) 當(dāng)前端工程師需要獨立于后端并行開發(fā)時,后端接口還沒有完成,那么前端怎么獲取數(shù)據(jù)? 這時可以考慮前端搭建web server自己模擬假數(shù)據(jù),這里我們選第三方庫 mockjs 用來生成隨機(jī)數(shù)據(jù),攔截Ajax請求。 下面是mock的原理圖: 實戰(zhàn)案例 先下載mockjs

    2024年02月14日
    瀏覽(24)
  • 【Java】使用PowerMockito mock static方法/new對象/mock對象的public或private方法的簡單示例

    1.1 打樁類的public static方法 測試用例中如果需要對public靜態(tài)方法的打樁,針對測試類增加注解@RunWith(PowerMockRunner.class)同時針對靜態(tài)方法所在的類增加注解@PrepareForTest({StaticMethod.class}),接著在測試用例調(diào)用方法之前增加 PowerMockito.mockStatic(StaticMethod.class); PowerMockito.when(StaticMet

    2024年01月24日
    瀏覽(23)
  • 使用mockito來mock final、static、private以及構(gòu)造方法

    final 方法 mock final方法(2.1版本開始):對final視而不見,和mock 普通方法一樣 stati 方法 mock static方法(3.4版本開始): 使用try-with-resource縮小作用范圍 構(gòu)造方法 mock 構(gòu)造方法(3.5版本開始):使用try-with-resource縮小作用范圍 私有方法 mockito 不支持mock私有方法,采用反射的方式

    2024年02月11日
    瀏覽(22)
  • PowerMock的簡單使用

    官方文檔:https://github.com/powermock/powermock/wiki 在做ut時,發(fā)現(xiàn)要測試的方法會引用很多外部依賴的對象,就可能需要用Mock工具來模擬這些外部依賴的對象,來完成ut。 在EasyMock、Mockito等的基礎(chǔ)上,增加了對static、final、private等方法的mock。 1、引入依賴 版本可根據(jù)具體情況而定

    2024年02月14日
    瀏覽(19)
  • PowerMock使用-依賴準(zhǔn)備

    PowerMock 是一個單元測試框架,可以模擬靜態(tài)方法,私有方法和 final 方法等來簡化單元測試的編寫。本篇文章將對使用 PowerMock 需要的依賴進(jìn)行介紹。 一. 注解添加與使用場景 在使用 PowerMock 時需要針對不同場景添加對應(yīng)注解,主要是 @RunWith 和 @PrepareForTest 注解。注解添加和場

    2024年02月08日
    瀏覽(11)
  • 如何使用PowerMock進(jìn)行單元測試

    原博文:如何使用PowerMock進(jìn)行單元測試 (techdatafuture.com) 持續(xù)更新 PowerMock是一個用于增強JUnit和TestNG的單元測試框架,它允許開發(fā)者在單元測試中模擬和修改代碼中的靜態(tài)方法、私有方法和構(gòu)造函數(shù)。PowerMock基于Mockito和EasyMock,為Java開發(fā)者提供了一種更靈活、強大的測試工具

    2024年02月16日
    瀏覽(32)
  • 使用反射調(diào)用類的私有內(nèi)部類的私有方法

    在進(jìn)行單元測試時,我們往往需要直接訪問某個類的內(nèi)部類或者某個類的私有方法,此時正常的調(diào)用就無能為力了,因此我們可以使用反射進(jìn)行調(diào)用。 類 實現(xiàn)方法 獲取類的Class對象 Class class = Class.forName(\\\"類名\\\") 或 Class class = 類實例.getClass() new一個實例 Object object = class.newIn

    2024年02月07日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包