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

Android 單元測試之PowerMock

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

class PowerMockClassTest {

@Test

fun isFileExists() {

// Mock 一個 File對象

val file = PowerMockito.mock(File::class.java)

// 創(chuàng)建當(dāng)前類

val powerMockitoClass = PowerMockClass()

// 當(dāng)Mock對象被調(diào)用了 exists() 方法,則返回False

PowerMockito.when(file.exists()).thenReturn(false)

// 進(jìn)行斷言

assertFalse(file.exists())

}

}

對于這種Mock普通對象進(jìn)行測試來說,不需要使用 @RunWith還有 @PrepareForTest()

2.2 Mock 靜態(tài)方法


我們創(chuàng)建一個 static的方法:

object PowerMockClass {

@JvmStatic

public fun isFileExists(): Boolean {

return false

}

}

創(chuàng)建測試類,需要使用 mockStatic(),里面裝入的是我們要測試靜態(tài)方法所在的類,測試類如下:

@RunWith(PowerMockRunner::class)

@PrepareForTest(PowerMockClass::class)

class PowerMockClassTest {

@Test

fun isFileExists() {

// mockStatic 來Mock靜態(tài)方法所在的類

PowerMockito.mockStatic(PowerMockClass::class.java)

// 當(dāng)Mock對象被調(diào)用了 exists() 方法,則返回True

PowerMockito.when(PowerMockClass.isFileExists()).thenReturn(true)

// 進(jìn)行斷言

assertTrue(PowerMockClass.isFileExists())

}

}

注意:

  • 方法需要被 @JvmStaic修飾,這是因為伴生方法雖然看似靜態(tài),但其在JVM的運作還是使用普通的對象來的,所以需要通過 JvmStaic聲明為真正的靜態(tài)方法。

  • 所在類需要聲明為obejct,因為 mockStatic里的類需要是靜態(tài)的。

2.3 Mock final方法


final方法還是蠻好操作的,沒有什么限制,來看看實現(xiàn)類:

class PowerMockClass {

public final fun isFileExists(): Boolean {

return false

}

}

測試類如下:

@RunWith(PowerMockRunner::class)

@PrepareForTest(PowerMockClass::class)

class PowerMockClassTest {

@Test

fun isFileExists() {

// mock 一個 final方法所在的類的對象

val pmc = PowerMockito.mock(PowerMockClass::class.java)

// 當(dāng)Mock對象被調(diào)用了 exists() 方法,則返回True

PowerMockito.when(pmc.isFileExists()).thenReturn(true)

// 進(jìn)行斷言

assertTrue(pmc.isFileExists())

}

}

2.4 Mock private方法


實現(xiàn)類:

class PowerMockClass {

private fun isFileExists(): Boolean {

return false

}

}

測試類比較簡單:

@RunWith(PowerMockRunner::class)

@PrepareForTest(PowerMockClass::class)

class PowerMockClassTest {

@Test

fun isFileExists() {

// mock 一個 private方法所在的類的對象

val pmc = PowerMockito.mock(PowerMockClass::class.java)

// 當(dāng)Mock對象被調(diào)用了 exists() 方法,則返回True

PowerMockito.doReturn(true).when(pmc, “isFileExists”)

}

}

可以看到基本和上面基本沒差別,但是由于我們不能直接調(diào)用 private方法,所以不好做斷言,這個時候我們可以加一個包裝方法:

class PowerMockClass {

public fun isPubFileExists(): Boolean {

return isFileExists()

}

}

在測試類中調(diào)用:
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)初中級Android工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則近萬的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Android移動開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負(fù)擔(dān)。

Android 單元測試之PowerMock,程序員,android,單元測試

Android 單元測試之PowerMock,程序員,android,單元測試

Android 單元測試之PowerMock,程序員,android,單元測試

Android 單元測試之PowerMock,程序員,android,單元測試

Android 單元測試之PowerMock,程序員,android,單元測試

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Android開發(fā)知識點,真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。▊渥ⅲ篈ndroid)

Android 單元測試之PowerMock,程序員,android,單元測試

結(jié)尾

我還總結(jié)出了互聯(lián)網(wǎng)公司Android程序員面試涉及到的絕大部分面試題及答案,并整理做成了文檔,以及系統(tǒng)的進(jìn)階學(xué)習(xí)視頻資料分享給大家。
(包括Java在Android開發(fā)中應(yīng)用、APP框架知識體系、高級UI、全方位性能調(diào)優(yōu),NDK開發(fā),音視頻技術(shù),人工智能技術(shù),跨平臺技術(shù)等技術(shù)資料),希望能幫助到你面試前的復(fù)習(xí),且找到一個好的工作,也節(jié)省大家在網(wǎng)上搜索資料的時間來學(xué)習(xí)。

Android 單元測試之PowerMock,程序員,android,單元測試

《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實戰(zhàn)項目源碼講義》點擊傳送門即可獲?。?/strong>文章來源地址http://www.zghlxwxcb.cn/news/detail-856661.html

及到的絕大部分面試題及答案,并整理做成了文檔,以及系統(tǒng)的進(jìn)階學(xué)習(xí)視頻資料分享給大家。
(包括Java在Android開發(fā)中應(yīng)用、APP框架知識體系、高級UI、全方位性能調(diào)優(yōu),NDK開發(fā),音視頻技術(shù),人工智能技術(shù),跨平臺技術(shù)等技術(shù)資料),希望能幫助到你面試前的復(fù)習(xí),且找到一個好的工作,也節(jié)省大家在網(wǎng)上搜索資料的時間來學(xué)習(xí)。**

[外鏈圖片轉(zhuǎn)存中…(img-jqIERjO8-1713017233882)]

《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實戰(zhàn)項目源碼講義》點擊傳送門即可獲??!

到了這里,關(guān)于Android 單元測試之PowerMock的文章就介紹完了。如果您還想了解更多內(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)文章

  • java & jacoco & powerMock 單元測試覆蓋率為0怎么解決

    我們項目中使用powerMock作為單元測試的mock工具,統(tǒng)計項目測試覆蓋率使用jacoco編譯的結(jié)果上傳到sonar,但是jacoco 和 powerMock在運行時runtime加載代碼的時候自定義了類加載器,所以就會有沖突,導(dǎo)致測試覆蓋率為0。 使用命令 mvn clean verify sonar:sonar上傳jacoco編譯結(jié)果(這里sonar命令

    2023年04月08日
    瀏覽(26)
  • 職場經(jīng)驗、為什么程序員一定要寫單元測試?

    職場經(jīng)驗、為什么程序員一定要寫單元測試?

    2024軟件測試面試刷題,這個小程序(永久刷題),靠它快速找到工作了?。ㄋ㈩}APP的天花板)_軟件測試刷題小程序-CSDN博客 文章瀏覽閱讀2.5k次,點贊85次,收藏11次。你知不知道有這么一個軟件測試面試的刷題小程序。里面包含了面試常問的軟件測試基礎(chǔ)題,web自動化測試、

    2024年02月21日
    瀏覽(30)
  • 基于Junit4+Mockito+PowerMock實現(xiàn)Controller+Service的單元測試

    基于Junit4+Mockito+PowerMock實現(xiàn)Controller+Service的單元測試

    一 導(dǎo)入的依賴 二 依賴版本 三 controller測試示例代碼 ? ? ? controller ? ? ? ? controllerTest ? ? ? ? 測試結(jié)果:覆蓋率100% ? ? ? ? 帶異常的Controller ? ? ? ? 帶異常提示的ControllerTest ? ? ? ? 測試結(jié)果,覆蓋率100% ? 三 service測試示例代碼 ? ? ? ? service ? ? ? ? serviceTest ???

    2024年02月14日
    瀏覽(28)
  • 程序員技能與成長:如何學(xué)習(xí)新的編程語言和代碼規(guī)范與單元測試

    程序員技能與成長:如何學(xué)習(xí)新的編程語言和代碼規(guī)范與單元測試

    一名軟件工程師的最大挑戰(zhàn)就是使自己的技術(shù)棧跟得上技術(shù)的發(fā)展,而在這個技術(shù)飛速發(fā)展的時代,保證自己不被淘汰的唯一方法就是不斷學(xué)習(xí)。 那么,程序員需要掌握多門編程語言嗎?很多初學(xué)者都被這個問題所困擾。Google研究總監(jiān) Peter Norvig曾就這個問題給出自己的觀點

    2024年04月10日
    瀏覽(27)
  • Android單元測試(五):網(wǎng)絡(luò)接口測試

    Android單元測試(五):網(wǎng)絡(luò)接口測試

    溫馨提示:如果你不太熟悉單元測試,可以先看下之前四篇基礎(chǔ)框架使用。便于你更好的理解下面的內(nèi)容。 在平日的開發(fā)中,我們用后臺寫好給我們接口去獲取數(shù)據(jù)。雖然我們有一些請求接口的工具,可以快速的拿到返回數(shù)據(jù)。但是在一些異常情況的處理上就不太方便了。我

    2024年02月08日
    瀏覽(18)
  • Android相機開發(fā)實戰(zhàn),Android程序員必看

    Android相機開發(fā)實戰(zhàn),Android程序員必看

    由于需求不同,所以選擇的方案固然也不同,至于第二種調(diào)用系統(tǒng)相機,這里就不過多講解了,使用Intent對象設(shè)置一個Action動作即可,跳轉(zhuǎn)時使用startActivityForResult,然后在onActivityResult處理相關(guān)數(shù)據(jù)便可,關(guān)鍵代碼: intent.setAction(“android.media.action.STILL_IMAGE_CAMERA”); 至于使用

    2024年04月15日
    瀏覽(29)
  • Android程序員成長之路

    Android程序員成長之路

    應(yīng)該熱愛學(xué)習(xí)Android知識 具備基本的自學(xué)能力和解決問題的能力 具備實踐能力 Java(基本) C/C++(進(jìn)階) Kotlin(基本) Python(可選) 飛書學(xué)習(xí)路線圖 學(xué)習(xí)路線圖正在完善中... 當(dāng)然讀者也可以提出寶貴建議。 我將會按照 Android學(xué)習(xí)路線圖 發(fā)布博客文章。 因本人才疏學(xué)淺,博客文章中難

    2024年02月09日
    瀏覽(26)
  • Android下單元測試實踐——測試框架簡介

    Android下單元測試實踐——測試框架簡介

    測試代碼的寫法可以歸納為三部分 第一部分: 準(zhǔn)備測試數(shù)據(jù)和定義mock行為 第二部分: 調(diào)用真實的函數(shù) 第三部分: 調(diào)用驗證函數(shù)進(jìn)行結(jié)果的驗證 在模塊的test路徑下編寫測試案例。在類中使用@Test注解,就可以告訴Junit這個方法是測試方式。同時使用assert*方法,可以調(diào)用J

    2024年02月04日
    瀏覽(20)
  • 區(qū)塊鏈錢包開發(fā)(Android篇),Android程序員必會

    區(qū)塊鏈錢包開發(fā)(Android篇),Android程序員必會

    布隆過濾器(Bloom Filter):過濾掉那些不包含有目標(biāo)地址的交易信息,這一步能避免掉大量不相關(guān)的數(shù)據(jù)下載。 創(chuàng)建區(qū)塊鏈 //創(chuàng)建區(qū)塊鏈文件 File blockChainFile = new File(getDir(“blockstore”, Context.MODE_PRIVATE), “blockchain”); //創(chuàng)建SPVBlockStore,管理區(qū)塊數(shù)據(jù) blockStore = new SPVBlockStore(Co

    2024年04月09日
    瀏覽(31)
  • Android 單元測試初體驗

    Android 單元測試初體驗

    當(dāng)初在學(xué)校學(xué)安卓的時候,老師敢教學(xué)進(jìn)度,翻到單元測試這一章節(jié)的時候提了兩句,沒有把單元測試當(dāng)重點講,只是說我們工作中幾乎不會用到,果真在之前的幾年工作當(dāng)中我真的沒有用到,工作中都沒有寫過單元測試,后來我自己也下意識的忽略了這一塊,直到聽說現(xiàn)在

    2024年02月03日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包