這篇文章主要講解了在Maven項(xiàng)目中運(yùn)行JUnit5測試用例的實(shí)現(xiàn)方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供廣宗企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、H5建站、小程序制作等業(yè)務(wù)。10年已為廣宗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
編寫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
因此,在Maven中,JUnit 5分模塊的,意味著你可以按需引入上面定義的任意模塊。這使得引入JUnit 5依賴就有了多個(gè)選擇。
一般而言,力求省事,就可以通過引入junit-jupiter依賴。junit-jupiter就是常用JUnit 5模塊的聚合包。
org.junit.jupiter junit-jupiter ${junit-jupiter.version} test
編寫測試用例
下面是一段簡單的Java程序:
/** * Welcome to https://waylau.com */ package com.waylau.java.demo; /** * Hello World. * * @since 1.0.0 2020年4月12日 * @author Way Lau */ 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 Way Lau */ 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):
運(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 secResults :
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è)插件。
maven-surefire-plugin ${maven-surefire-plugin.version} maven-failsafe-plugin ${maven-failsafe-plugin.version}
在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í)行。
看完上述內(nèi)容,是不是對在Maven項(xiàng)目中運(yùn)行JUnit5測試用例的實(shí)現(xiàn)方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。