溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ABAP和Java的單元測(cè)試Unit Test

發(fā)布時(shí)間:2020-08-08 15:38:31 來(lái)源:ITPUB博客 閱讀:125 作者:i042416 欄目:移動(dòng)開發(fā)

ABAP

ABAP class單元測(cè)試的執(zhí)行入口,CLASS_SETUP, 是硬編碼在單元測(cè)試框架實(shí)現(xiàn)CL_AUNIT_TEST_CLASS里的。


ABAP和Java的單元測(cè)試Unit Test
ABAP和Java的單元測(cè)試Unit Test

待執(zhí)行的單元測(cè)試方法通過CL_AUNIT_TEST_CLASS~get_Test_Methods返回到一個(gè)內(nèi)表里,然后LOOP該內(nèi)表,依次執(zhí)行。


ABAP和Java的單元測(cè)試Unit Test
ABAP和Java的單元測(cè)試Unit Test

Java

最常用的Maven plugin是maven-surefire-plugin,可以方便地單獨(dú)觸發(fā)單元測(cè)試,或者把單元測(cè)試的執(zhí)行集成為Maven build的一個(gè)子步驟。

ABAP和Java的單元測(cè)試Unit Test

下圖表明在執(zhí)行mvn clean install時(shí),執(zhí)行了srv/test/java/com/sap/testcase下面的兩個(gè)test case:


ABAP和Java的單元測(cè)試Unit Test

那么maven-surefire-plugin是如何知道哪些.java文件里面的測(cè)試方法需要執(zhí)行呢?
到這個(gè)目錄下面打開maven-surefire-plugin的實(shí)現(xiàn)文件SurefirePlugin.class:
.m2\repository\org\apache\maven\plugins\maven-surefire-plugin\2.20\maven-surefire-plugin-2.20\org\apache\maven\plugin\surefire

反編譯出來(lái),在getDefaultIncludes里面發(fā)現(xiàn)了答案:所有符合后綴Test*.java, Tests.java, TestCase.java結(jié)尾的Java文件都作為執(zhí)行單元測(cè)試的候選,


ABAP和Java的單元測(cè)試Unit Test

Java里單元測(cè)試的靈活之處在于可以給同一class里的不同方法指定不同的Category:


ABAP和Java的單元測(cè)試Unit Test

然后用命令行mvn install加上參數(shù)-P SlowTests只執(zhí)行category為SlowTests的那些方法:
ABAP和Java的單元測(cè)試Unit Test


ABAP和Java的單元測(cè)試Unit Test

關(guān)于@Category注解的更多高級(jí)用法,參考我的SAP Community 博客: Run only given sets of your unit test via @Category


要獲取更多Jerry的原創(chuàng)技術(shù)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙"或者掃描下面二維碼:

ABAP和Java的單元測(cè)試Unit Test
ABAP和Java的單元測(cè)試Unit Test
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI