1. 程式人生 > >ABAP和Java的單元測試Unit Test

ABAP和Java的單元測試Unit Test

unit test image 如何 ogr 需要 shu 原創 test case 關於

ABAP

ABAP class單元測試的執行入口,CLASS_SETUP, 是硬編碼在單元測試框架實現CL_AUNIT_TEST_CLASS裏的。
技術分享圖片

技術分享圖片
待執行的單元測試方法通過CL_AUNIT_TEST_CLASS~get_Test_Methods返回到一個內表裏,然後LOOP該內表,依次執行。
技術分享圖片

技術分享圖片

Java

最常用的Maven plugin是maven-surefire-plugin,可以方便地單獨觸發單元測試,或者把單元測試的執行集成為Maven build的一個子步驟。

技術分享圖片
下圖表明在執行mvn clean install時,執行了srv/test/java/com/sap/testcase下面的兩個test case:
技術分享圖片


那麽maven-surefire-plugin是如何知道哪些.java文件裏面的測試方法需要執行呢?
到這個目錄下面打開maven-surefire-plugin的實現文件SurefirePlugin.class:
.m2\repository\org\apache\maven\plugins\maven-surefire-plugin\2.20\maven-surefire-plugin-2.20\org\apache\maven\plugin\surefire

反編譯出來,在getDefaultIncludes裏面發現了答案:所有符合後綴Test*.java, Tests.java, TestCase.java結尾的Java文件都作為執行單元測試的候選,
技術分享圖片


Java裏單元測試的靈活之處在於可以給同一class裏的不同方法指定不同的Category:
技術分享圖片
然後用命令行mvn install加上參數-P SlowTests只執行category為SlowTests的那些方法:
技術分享圖片

技術分享圖片
關於@Category註解的更多高級用法,參考我的SAP Community 博客: Run only given sets of your unit test via @Category。

要獲取更多Jerry的原創技術文章,請關註公眾號"汪子熙"或者掃描下面二維碼:

技術分享圖片

技術分享圖片

ABAP和Java的單元測試Unit Test