ABAP和Java的单元测试Unit Test

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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原文地址:https://www.cnblogs.com/sap-jerry/p/9191446.html

时间: 2024-10-31 13:44:56

ABAP和Java的单元测试Unit Test的相关文章

ABAP vs Java, 蛙泳 vs 自由泳

去年7月定下的一年之内学会自由泳的目标终于实现了,特来还愿. ABAP和Java,?蛙泳和自由泳.前面的组合是Jerry用来挣钱养家的技术,后者是Jerry花了大量业余时间和金钱苦练的技能.或许有的朋友觉得这两组概念风马牛不相及,然而在Jerry眼中,ABAP之于Java, 相当于蛙泳之于自由泳. 文章目录 ABAP和Java的相同点 1. 语言特性 2. 开发框架,工具和生态圈 蛙泳和自由泳的相同点 ABAP(蛙泳)和Java(自由泳)的不同点 1.? "Java(自由泳)的环境搭建(游进)比

Visual Studio 中的单元测试 UNIT TEST

原文:Visual Studio 中的单元测试 UNIT TEST 注:本文系作者原创,可随意转载,但请注明出处.如实在不愿注明可留空,强烈反对更改原创出处. TDD(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码.单元测试是最基本的测试步骤.位于整个产品开发流程V模型的最底部.大致如图,在各种开发流程中RA&PSD完成后,无需底层基础,

ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

ABAP 740的新语法: 上图的代码相当于: DATA: ls_data LIKE LINE OF it_data. READ TABLE it_data INTO ls_data WITH KEY object_ext = cl_crm_prodil_bo_names=>gc_prod_root. CALL METHOD add_data EXPORTING ir_child_object = ir_root_object is_data = ls_data. 由此可见新语法比较简洁,能少写

ABAP,Java, nodejs和go语言的web server编程

ABAP and Java see my blog. nodejs 用nodejs现成的express module,几行代码就能写个server出来: var express = require('express'); var routesEngine = require('./jerryapp/routes/index.js'); // index.js actually http://www.ruanyifeng.com/blog/2015/05/require.html var app

java之单元测试

这篇主要简单讲下java的单元测试 目录结构如下: 如图,其中1是需要被测试的功能:2是测试模块:3是单元测试需要的引入包: 1. 功能模块1中 Calculator 的代码: package cn.vincent.calc; public class Calculator { public int add(int a,int b){ return a+b; } public int multiply(int a,int b){ return a*b; } } 主要包含两个方法:add 和 mu

ABAP和Java SpringBoot的单元测试

ABAP 在ABAP类里,本地类(Local Class)里用关键字FOR TESTING声明过的方法, 在单元测试启动后会自动被调用到. Spring Boot 在Spring及Spring Boot "Convention over configuration"的设定思路里,放在路径src/test/java下面以Tests.java结尾的Java类会被当成单元测试类处理. 对上述项目执行命令行mvn clean install后,报错误消息: java.lang.IllegalS

Java中单元测试中:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解

在Junit4中还有的测试注解有:  @BeforeClass ,@Before,@Test,@After,@AfterClass 1.其中:@BeforeClass,@AfterClass是Junit4中新添加进去的 2.如果Run as --->Junit Test,运行含有@Test注释的方法是,那么所有注解方法都将被执行,所含的执行顺序是: @BeforeClass ,@Before,@Test,@After,@AfterClass 3.在JUnit4中,如果测试类继承了TestCase

对JAVA代码单元测试

步骤: 1.首先新建一个项目叫JUnitTest,我编写一个Calculator类,这是一个能够简单实现加减乘除.平方.开方的计算器类,然后对这些功能进行单元测试: 2.第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,在弹出的属性窗口中,首先在左边选择“Java构建路径”,然后到右上选择“库”标签,之后在最右边点    击“Add Library…”按钮,然后在新弹出的对话框中选择JUnit4并点击确定: 3.生成JUnit测试框架:在Eclipse的Package

[Java Basics3] XML, Unit testing

What's the difference between DOM and SAX? DOM creates tree-like representation of the XML document in memory, SAX is event-based.  What's the difference between XSD and DTD? XSD is in XML, DTD is not. XSD is much more comprehensive than DTD You're g