ABAP和Java的单元测试UnitTest
ABAP
ABAP class单元测试的执行入口,CLASS_SETUP, 是硬编码在单元测试框架实现CL_AUNIT_TEST_CLASS里的。
我们拥有十余年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供网站制作、做网站、微信开发、微信小程序、手机网站制作、H5技术、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-c76a5020f4c1d682.png)
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-8ca45c5128266c83.png)
待执行的单元测试方法通过CL_AUNIT_TEST_CLASS~get_Test_Methods返回到一个内表里,然后LOOP该内表,依次执行。
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-fc9b3f5110cf4273.png)
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-c4bc058a4e3bbc6c.png)
Java
最常用的Maven plugin是maven-surefire-plugin,可以方便地单独触发单元测试,或者把单元测试的执行集成为Maven build的一个子步骤。
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-b042bf9c65e6cc3c.png)
下图表明在执行mvn clean install时,执行了srv/test/java/com/sap/testcase下面的两个test case:
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-ecd04c85ed53cc71.png)
那么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文件都作为执行单元测试的候选,
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-c32782c691489e2e.png)
Java里单元测试的灵活之处在于可以给同一class里的不同方法指定不同的Category:
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-96d41a775d1e5087.png)
然后用命令行mvn install加上参数-P SlowTests只执行category为SlowTests的那些方法:
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-4967820aa1db4555.png)
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-e8a96df16055fff5.png)
关于@Category注解的更多高级用法,参考我的SAP Community 博客: Run only given sets of your unit test via @Category。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-2486f3bd80b6ca71.png)
![ABAP和Java的单元测试Unit Test](/upload/otherpic56/2085791-459dc9b052f3c62d.png)
文章名称:ABAP和Java的单元测试UnitTest
当前链接:http://pcwzsj.com/article/gpcphi.html