日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用JUnit 5在Mockito中方便地进行模拟–官方方式

發(fā)布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用JUnit 5在Mockito中方便地进行模拟–官方方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

從版本2.17.0開始,如果使用JUnit 5, Mockito提供了官方(內置)支持來管理模擬生命周期。

入門

為了利用該集成,需要在JUnit 5的junit-platform-engine旁邊添加Mockito的mockito-junit-jupiter依賴項(有關詳細信息,請參見下文)。

之后, MockitoException為JUnit 5啟用新的Mockito擴展MockitoException 。 這就足夠了。 所有的Mockito注釋都應自動開始工作。

import org.junit.jupiter.api.Test; //do not confuse with 'org.junit.Test'! //other imports import org.mockito.junit.jupiter.MockitoExtension;@ExtendWith(MockitoExtension.class) class SpaceShipJUnit5Test {@InjectMocksprivate SpaceShip spaceShip;@Mockprivate TacticalStation tacticalStation;@Mockprivate OperationsStation operationsStation;@Testvoid shouldInjectMocks() {assertThat(spaceShip).isNotNull();assertThat(tacticalStation).isNotNull();assertThat(operationsStation).isNotNull();assertThat(spaceShip.getTacticalStation()).isSameAs(tacticalStation);assertThat(spaceShip.getOperationsStation()).isSameAs(operationsStation);} }

很好的是,測試類和測試方法都不再需要公開了。

請注意 。 在類路徑上(例如,通過junit-vintage-engine )還具有JUnit 4來進行測試的“舊版”部分,因此不要將org.junit.jupiter.api.Test與舊的org.junit.Test混淆是很重要的。 不起作用。

存根和驗證

如果由于某些原因您不喜歡AssertJ(盡管我鼓勵您至少嘗試一下),則JUnit 5提供了一個本地斷言assertThrows (與AssertJ中的assertThatThrownBy()非常相似)。 在斷言失敗的情況下,它提供了有意義的錯誤消息。

@Test void shouldMockSomething() {//givenwillThrow(SelfCheckException.class).given(tacticalStation).doSelfCheck(); //void method "given..will" not "when..then" cannot be used//whenExecutable e = () -> spaceShip.doSelfCheck();//thenassertThrows(SelfCheckException.class, e); }

我不是我自己,如果我在這里不提及在AssertJ和嘲笑java8中可用的接口中利用對默認方法的支持,可以使很多靜態(tài)導入變得多余。

@ExtendWith(MockitoExtension.class) class SpaceShipJUnit5Test implements WithAssertions, WithBDDMockito {... }

調整默認行為

還需要指出的是,默認情況下,使用JUnit 5擴展Mockito可以在“嚴格模式”下使用 。 這意味著,例如,不必要的存根將使測試失敗。 雖然通常是代碼氣味,但在某些情況下需要測試構造。 要更改默認行為,可以使用@MockitoSettings批注。

@ExtendWith(MockitoExtension.class) @MockitoSettings(strictness = Strictness.WARN) class SpaceShipJUnitAdvTest implements WithAssertions, WithBDDMockito {.... }

依存關系

正如我已經(jīng)提到的,要開始使用它,需要在JUnit 5的junit-platform-engine旁邊添加Mockito的mockito-junit-jupiter依賴項。 在Gradle構建中,它可能類似于:

dependencies {testCompile 'org.junit.vintage:junit-platform-engine:5.1.0'testCompile 'org.mockito:mockito-junit-jupiter:2.17.2' //mockito-core is implicitly addedtestCompile 'org.junit.vintage:junit-vintage-engine:5.1.0' //for JUnit 4.12 test execution, if neededtestCompile 'org.assertj:assertj-core:3.9.1' //if you like it (you should ;) ) }

請注意 。 由于我在寫這篇博客文章時發(fā)現(xiàn)通過構造函數(shù)將模擬注入最終字段中的錯誤 ,因此建議至少使用2.17.2版本而不是2.17.0版本。 該“開發(fā)”版本在Maven Central中不可用,必須添加額外的Bintray存儲庫。

repositories {mavenCentral()maven { url "https://dl.bintray.com/mockito/maven" } //for development versions of Mockito }

另外,如果不對Gradle 4.6+中的 JUnit 5測試執(zhí)行使用全新的本機支持,那將是一種浪費。

test {useJUnitPlatform() }

自2016.2起,IntelliJ IDEA就提供了JUnit支持(當時的JUnit 5里程碑2)。 Eclipse Oxygen最近似乎也增加了對JUnit 5的支持 。

摘要

在Mockito中具有對JUnit 5的本機支持真的很好。 沒有取得成功,仍在不斷進行改進。
該功能由Christian Schwarz實現(xiàn),并由Tim van der Lippe在其他一些人的大力協(xié)助下進行了完善。

源代碼可從GitHub獲得 。

翻譯自: https://www.javacodegeeks.com/2018/03/convenient-mocking-in-mockito-with-junit-5-the-official-way.html

總結

以上是生活随笔為你收集整理的使用JUnit 5在Mockito中方便地进行模拟–官方方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 噼里啪啦免费看 | 鲁片一区二区三区 | 手机看片一区 | 亚洲在线免费观看视频 | 国产色婷婷一区二区 | 久草观看视频 | 69亚洲精品| 国产色中色 | 色呦呦国产精品 | 欧美老熟妇喷水 | 伊甸园精品区 | 色男人的天堂 | 国产ts在线视频 | ktv做爰视频一区二区 | 日本黄色三级网站 | 性欧美成人播放77777 | av永久免费 | 嫩草影院中文字幕 | 色综合天天综合网国产成人网 | 欧美1区2区3区4区 | 永久影院| 午夜在线视频免费观看 | 视频在线观看 | 成人免费黄色av | 91视频 - 8mav| 天天干天天色综合 | 亚洲日日操| 天天舔天天爽 | 麻豆一区二区在线观看 | brazzers欧美一区二区 | 久久久久不卡 | 欧美日韩国产91 | 男人天堂电影 | 天堂99 | 精品无码黑人又粗又大又长 | 欧美黑人巨大xxx极品 | wwww欧美| 一区在线观看视频 | √资源天堂中文在线视频 | 美女的胸给男人玩视频 | 国产97av| 亚洲国产日韩精品 | 自拍偷拍一区二区三区 | 黄色大片免费在线观看 | 69色堂| 人与拘一级a毛片 | 久久久精品国产 | 精品国产69| 综合色综合 | 久国产视频| 中文字幕免费一区二区 | 黄色免费在线观看视频 | 夜夜操网| 爱情岛论坛永久入址测速 | 亚洲专区欧美 | 夜夜操夜夜爽 | 欧美一级淫 | 欲色视频 | 日韩成人区 | 天天性综合 | aaaa视频| 国产福利一区二区三区 | 免费黄色网址在线观看 | 亚洲成人观看 | 美女被男人插 | 日韩成人在线影院 | 黄色录像毛片 | 国产片久久 | 成人av动漫 | 国产在线视频一区 | 成人h动漫精品一区二区无码 | 国产在线看 | 男女操操视频 | 一区二区三区欧美 | 久久机热 | 中文字幕 人妻熟女 | 亚洲在线观看免费 | av黄色小说 | 欧美午夜寂寞影院 | 欧美 日韩 国产一区 | 久久婷婷激情 | 国内黄色一级片 | 干操网 | 国语对白真实视频播放 | 看一级黄色 | 亚洲av无码一区二区乱子伦 | 精品午夜福利视频 | 四虎免费影视 | 日本色视 | 日本爽爽 | 超碰在线最新地址 | av嫩草| 4444亚洲人成无码网在线观看 | 91成人精品国产刺激国语对白 | 天天干夜夜添 | 青草视频在线播放 | 国产精品视频福利 | 欧美性生活免费视频 | 日韩三级一区二区三区 |