SuperAPI AI 工具集

abap-unit-testing

测试与质量

查看项目

更新于 10-16 00:00

技能介绍

用途:指导编写有效的 ABAP Unit 测试,覆盖测试类搭建、断言、测试替身、Mock 框架与依赖注入,以及 CDS、SQL、RAP 的测试环境。

主要能力:

  1. 测试类基础:用 FOR TESTING 标记测试方法,配合 DURATION(SHORT/MEDIUM/LONG)与 RISK LEVEL(HARMLESS/DANGEROUS/CRITICAL)控制执行时间与数据影响;提供 class_setup/class_teardown 与 setup/teardown 生命周期方法。
  2. 断言:使用 cl_abap_unit_assert 的 assert_equals、assert_true、assert_false、assert_initial、assert_not_initial、assert_bound、assert_not_bound、assert_differs、assert_char_cp、assert_char_np、assert_number_between、assert_table_contains、assert_table_not_contains、assert_return_code 及 fail。
  3. 测试替身与依赖注入:推荐构造函数注入,将依赖抽象为接口,测试中传入手工 Mock(如 ltd_ 前缀类);生产代码可保留默认实现。
  4. 测试环境:CDS 用 cl_cds_test_environment=>create( i_for_entity = 'ZI_ENTITY' ),配合 insert_test_data( ) 与 clear_doubles( );SQL 用 cl_osql_test_environment=>create( i_dependency_list = ... );RAP 提供事务缓冲替身与 Mock EML API。旧代码可用 TEST-SEAM/TEST-INJECTION。

使用方式:遵循 AAA(Arrange→Act→Assert)模式,测试保持隔离,不依赖持久数据或外部系统;测试类放在本地测试包含中,命名建议 ltc_ 与 ltd_ 前缀。

适用场景:类方法业务逻辑、校验与异常、边界情况、CDS 视图计算与聚合、RAP 行为实现(动作、校验、确定)。

限制:不应测试框架自带功能(如 RAP 托管 CRUD)、简单 getter/setter 与 ABAP 运行时行为;新代码优先构造函数注入而非测试接缝。具体完整代码示例见资料引用的 references/test-environment-examples.md。