最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何在Maven項(xiàng)目中運(yùn)行JUnit5測試用例實(shí)現(xiàn)

 更新時(shí)間:2020年04月28日 10:18:17   作者:老衛(wèi)  
這篇文章主要介紹了如何在Maven項(xiàng)目中運(yùn)行JUnit5測試用例實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文演示了如何如何編寫JUnit 5測試用例,在Maven項(xiàng)目中運(yùn)行JUnit 5測試用例。

編寫JUnit 5測試用例

如果你是Java開發(fā)者,那么對于JUnit應(yīng)該就不陌生。JUnit是Java單元測試的基礎(chǔ)工具。

JUnit目前最新的版本是JUnit 5.x,但廣大的Java開發(fā)者估計(jì)還停留在JUnit 4.x,因此有必要演示下如何編寫JUnit 5測試用例。

引入JUnit 5依賴

相比較JUnit 4而言,JUnit 5一個(gè)比較大的改變是JUnit 5擁有與JUnit 4不同的全新的API。JUnit 5分成了三部分:

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
  1. JUnit Platform是在JVM上啟動(dòng)測試框架的基礎(chǔ)。 它還定義了TestEngine API,用于開發(fā)在平臺(tái)上運(yùn)行的測試框架。 此外,該JUnit Platform還提供了一個(gè)控制臺(tái)啟動(dòng)器(用于從命令行啟動(dòng)該平臺(tái))和一個(gè)基于JUnit 4的運(yùn)行器,用于在基于JUnit 4的環(huán)境中在該平臺(tái)上運(yùn)行任何TestEngine。 流行的IDE(IntelliJ IDEA,Eclipse,NetBeans和Visual Studio Code等)和構(gòu)建工具(Gradle,Maven和Ant等)中也存在對JUnit平臺(tái)的一流支持。
  2. JUnit Jupiter是新編程模型和擴(kuò)展模型的組合,用于在JUnit 5中編寫測試和擴(kuò)展。Jupiter子項(xiàng)目提供了一個(gè)TestEngine,用于在平臺(tái)上運(yùn)行基于Jupiter的測試。
  3. JUnit Vintage提供了一個(gè)TestEngine,用于在平臺(tái)上運(yùn)行基于JUnit 3和基于JUnit 4的測試。

因此,在Maven中,JUnit 5分模塊的,意味著你可以按需引入上面定義的任意模塊。這使得引入JUnit 5依賴就有了多個(gè)選擇。

一般而言,力求省事,就可以通過引入junit-jupiter依賴。junit-jupiter就是常用JUnit 5模塊的聚合包。

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter</artifactId>
  <version>${junit-jupiter.version}</version>
  <scope>test</scope>
</dependency>

編寫測試用例

下面是一段簡單的Java程序:

/**
 * Welcome to https://waylau.com
 */
package com.waylau.java.demo;

/**
 * Hello World.
 * 
 * @since 1.0.0 2020年4月12日
 * @author <a  rel="external nofollow" rel="external nofollow" >Way Lau</a>
 */
public class HelloWorld {

 private String words;

 public HelloWorld(String words) {
 this.words = words;
 }
 
 public String getWords() {
 return words;
 }

}

按照管理,我們會(huì)在Maven工程的test目錄,創(chuàng)建一個(gè)與之對應(yīng)的單元測試用例:

/**
 * Welcome to https://waylau.com
 */
package com.waylau.java.demo;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

/**
 * HelloWorld Test.
 * 
 * @since 1.0.0 2020年4月12日
 * @author <a  rel="external nofollow" rel="external nofollow" >Way Lau</a>
 */
class HelloWorldTests {

 @Test
 void testGetWords() {
 var words = "Hello World";
 var hello = new HelloWorld(words);
 
 assertEquals(words, hello.getWords());
 }
}

上述用例非常簡單,就是想測試下,HelloWorld的getWords方法,是否與預(yù)期的一致。

這里需要強(qiáng)調(diào)的是JUnit 5和JUnit 4的不同點(diǎn):

  • JUnit 5使用的API是org.junit.jupiter.api.*包下
  • 測試方法(比如上例testGetWords),可以不加public。

運(yùn)行JUnit 5測試用例

上如上文所講,在大多數(shù)主流的IDE中,都提供了對JUnit 5的支持。因此可以選擇在IDE中運(yùn)行,也可以通過Maven執(zhí)行測試。

在IDE中運(yùn)行

以Eclipse IDE為例,右鍵類或者方法,選擇“Run As -> JUnit Test”即可。如下圖所示。

通過Maven執(zhí)行測試

在Maven中執(zhí)行測試用例的命令如下:

mvn test

如果你執(zhí)行了上述命令,會(huì)得到下面的測試結(jié)果

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.waylau.java.demo.HelloWorldTests
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.983 s
[INFO] Finished at: 2020-04-12T11:22:16+08:00
[INFO] ------------------------------------------------------------------------

上面結(jié)果沒有失敗的用例,但同時(shí)你也發(fā)現(xiàn)了沒有成功的用例。因?yàn)楦緵]有執(zhí)行測試用例。

這是因?yàn)?,在Maven中并不能直接識(shí)別JUnit 5測試用例。如何解決?此時(shí),還需要額外加多Maven Surefire或Maven Failsafe兩個(gè)插件。

<build>
  <plugins>
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${maven-surefire-plugin.version}</version>
    </plugin>
    <plugin>
      <artifactId>maven-failsafe-plugin</artifactId>
      <version>${maven-failsafe-plugin.version}</version>
    </plugin>
  </plugins>
</build>

在Maven中再次執(zhí)行測試用例,會(huì)得到下面的測試結(jié)果:

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.waylau.java.demo.HelloWorldTests
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.045 s - in com.waylau.java.demo.HelloWorldTests
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.116 s
[INFO] Finished at: 2020-04-12T11:30:29+08:00
[INFO] ------------------------------------------------------------------------

可以看到,HelloWorldTests類已經(jīng)得到了測試執(zhí)行。

參考引用

Eclipse IDE支持Java 14: http://m.fzitv.net/article/185636.htm
本文示例源碼:https://github.com/waylau/java-data-structures-and-algorithms-in-action

到此這篇關(guān)于如何在Maven項(xiàng)目中運(yùn)行JUnit5測試用例實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Maven運(yùn)行JUnit5測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Timer的schedule()方法參數(shù)詳解

    Java中Timer的schedule()方法參數(shù)詳解

    今天小編就為大家分享一篇關(guān)于Java中Timer的schedule()方法參數(shù)詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Freemarker 最簡單的例子程序

    Freemarker 最簡單的例子程序

    Freemarker最簡單的例子程序是通過String來創(chuàng)建模版對象,并執(zhí)行插值處理。
    2016-04-04
  • 微信公眾號(hào)開發(fā)之設(shè)置自定義菜單實(shí)例代碼【java版】

    微信公眾號(hào)開發(fā)之設(shè)置自定義菜單實(shí)例代碼【java版】

    這篇文章主要介紹了微信公眾號(hào)開發(fā)之設(shè)置自定義菜單實(shí)例代碼,本實(shí)例是為了實(shí)現(xiàn)在管理后臺(tái)實(shí)現(xiàn)微信菜單的添加刪除管理。需要的朋友可以參考下
    2018-06-06
  • Mybatis-plus使用TableNameHandler分表詳解(附完整示例源碼)

    Mybatis-plus使用TableNameHandler分表詳解(附完整示例源碼)

    這篇文章主要介紹了Mybatis-plus使用TableNameHandler分表詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java9新特性中的模塊化詳解

    Java9新特性中的模塊化詳解

    今天介紹一個(gè)Java?9的功能,模塊化(Modular),這可能使Java有史以來最大的Feature,對Java9模塊化相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-03-03
  • Java16 JDK安裝并設(shè)置環(huán)境變量的方法步驟

    Java16 JDK安裝并設(shè)置環(huán)境變量的方法步驟

    突然想起自己大學(xué)剛接觸java的時(shí)候,要下載JDK和配置環(huán)境變量,那時(shí)候我上網(wǎng)找了很多教學(xué),本文就詳細(xì)的介紹一下Java16 JDK安裝并設(shè)置環(huán)境變量,感興趣的可以了解一下
    2021-09-09
  • alibaba?seata服務(wù)端具體實(shí)現(xiàn)

    alibaba?seata服務(wù)端具體實(shí)現(xiàn)

    seata是來處理分布式服務(wù)之間互相調(diào)用的事務(wù)問題,本文重點(diǎn)給大家介紹alibaba-seata實(shí)現(xiàn)方法,文中通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • IDEA導(dǎo)入geoserver項(xiàng)目的詳細(xì)步驟及注意事項(xiàng)

    IDEA導(dǎo)入geoserver項(xiàng)目的詳細(xì)步驟及注意事項(xiàng)

    由于GeoServer是基于Java開發(fā)的。因此在安裝之前,必須確保安裝了Java。本文給大家分享IDEA導(dǎo)入geoserver項(xiàng)目的詳細(xì)步驟及注意事項(xiàng),感興趣的朋友一起看看吧
    2021-06-06
  • Java設(shè)計(jì)模式之命令模式CommandPattern詳解

    Java設(shè)計(jì)模式之命令模式CommandPattern詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之命令模式CommandPattern詳解,命令模式是把一個(gè)請求封裝為一個(gè)對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊(duì)或記錄請求日志,以及支持可撤銷的操作,需要的朋友可以參考下
    2023-10-10
  • Maven發(fā)布Jar包中文亂碼解決方法

    Maven發(fā)布Jar包中文亂碼解決方法

    這篇文章主要介紹了Maven發(fā)布Jar包中文亂碼解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評(píng)論

伊金霍洛旗| 寻乌县| 兰州市| 交口县| 江安县| 昌邑市| 长岭县| 闵行区| 宝坻区| 九龙县| 晋江市| 东光县| 广丰县| 蒙山县| 黑水县| 高淳县| 图片| 丰宁| 上高县| 麟游县| 上饶县| 蕉岭县| 平泉县| 诸暨市| 莱州市| 若尔盖县| 盐津县| 凉城县| 云和县| 长沙县| 加查县| 麻江县| 蓝田县| 隆昌县| 新昌县| 怀柔区| 章丘市| 鄂伦春自治旗| 平凉市| 澄江县| 搜索|