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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

在Java 8之前的项目中使用JUnit 5

發(fā)布時(shí)間:2023/12/3 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Java 8之前的项目中使用JUnit 5 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這篇文章演示了如何在Java 8之前的項(xiàng)目中使用JUnit 5,并解釋了為什么它是一個(gè)好主意。

JUnit 5至少需要Java 8作為運(yùn)行時(shí)環(huán)境,因此您想將整個(gè)項(xiàng)目更新為Java8。但是有時(shí)由于某些原因,您無法立即將項(xiàng)目更新為Java8。例如,應(yīng)用程序服務(wù)器的版本生產(chǎn)環(huán)境中的產(chǎn)品僅支持Java7。但是由于生產(chǎn)代碼中的某些問題,更新不會(huì)很快進(jìn)行。

現(xiàn)在,問題是如何在不將生產(chǎn)代碼更新為Java 8的情況下使用JUnit 5?

在Maven中(當(dāng)然也可以在Gradle中),您可以分別為生產(chǎn)代碼和測(cè)試代碼設(shè)置Java版本。

<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>7</source><target>7</target><testSource>8</testSource><testTarget>8</testTarget></configuration></plugin></plugins> </build>

前提條件是您使用Java 8 JDK進(jìn)行構(gòu)建。

如果嘗試在Java 7生產(chǎn)代碼中使用Java 8功能,則Maven將使構(gòu)建失敗。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project junit5-in-pre-java8-projects: Compilation failure [ERROR] /home/sparsick/dev/workspace/junit5-example/junit5-in-pre-java8-projects/src/main/java/Java7Class.java:[8,58] lambda expressions are not supported in -source 7 [ERROR] (use -source 8 or higher to enable lambda expressions)

現(xiàn)在,您可以在項(xiàng)目中引入JUnit 5,并開始使用JUnit 5編寫測(cè)試。

<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><scope>test</scope> </dependency> <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><scope>test</scope> </dependency> <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-params</artifactId><scope>test</scope> </dependency> <!-- junit-vintage-engine is needed for running elder JUnit4 test with JUnit5--> <dependency><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId><scope>test</scope> </dependency>

您不需要遷移舊的JUnit 4測(cè)試,因?yàn)镴Unit 5具有測(cè)試引擎,可以與JUnit 5一起運(yùn)行JUnit 4測(cè)試。因此,對(duì)于新測(cè)試,請(qǐng)使用JUnit 5,并且僅在必須觸摸時(shí)才遷移JUnit 4測(cè)試。

盡管您無法將生產(chǎn)代碼更新為較新的Java版本,但將測(cè)試代碼更新為較新的Java版本有一些好處。

最大的好處是您可以在日常工作中編寫測(cè)試時(shí)開始學(xué)習(xí)新的語言功能。 您不會(huì)在生產(chǎn)代碼中犯初學(xué)者的錯(cuò)誤。 您可以使用有助于改善測(cè)試的新工具。 例如,在JUnit 5中編寫參數(shù)化測(cè)試比在JUnit 4中編寫更舒適。以我的經(jīng)驗(yàn),在參數(shù)化測(cè)試有意義的情況下,開發(fā)人員使用JUnit 5編寫參數(shù)化測(cè)試比使用JUnit 4編寫。

上述技術(shù)也適用于其他Java版本。 例如,您的生產(chǎn)代碼在Java 11上,而您想在測(cè)試代碼中使用Java 12功能。 該技術(shù)的另一個(gè)用例是在日常工作中學(xué)習(xí)另一種JVM語言,例如Groovy,Kotlin或Clojure。 然后在測(cè)試代碼中使用新語言。

這種方法有一個(gè)小陷阱。 IntelliJ IDEA無法分別設(shè)置Java版本以進(jìn)行生產(chǎn)和測(cè)試。 因此,您必須將整個(gè)項(xiàng)目設(shè)置為Java8。如果您的生產(chǎn)代碼使用正確的Java版本,則只有Maven構(gòu)建會(huì)為您提供反饋。

鏈接

  • Maven項(xiàng)目設(shè)置

翻譯自: https://www.javacodegeeks.com/2019/01/using-junit-5-pre-java-8-projects.html

總結(jié)

以上是生活随笔為你收集整理的在Java 8之前的项目中使用JUnit 5的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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