Erc*_*rch 4 sap abap unit-testing mocking
我正在尝试用ABAP编写我的第一个单元测试。
我的测试方法(通过system variable sy-uname)获取登录用户的团队成员。
因为我希望测试能够为所有人运行,所以我不能只让方法运行并声明我自己的团队成员之一。
我要模拟sy-uname,所以测试不依赖于执行它的人。
这可能吗?如果是,您如何模拟系统参数?
我一半同意由豪杰给出的答案:一个人应该不使用测试接缝(因为ABAP 7.50存在)一个这么简单的情况下(更换sy-uname),你应该只因为他提出的使用提供程序类。
测试接缝被视为对生产代码的污染,因为它会降低代码的可读性(生产代码与测试代码的混合)。
注意:测试接缝的ABAP文档(上面的链接)至少提供了以下可能的用法:
CL_OSQL_TEST_ENVIRONMENT。按照经验法则,完全不应使用测试接缝,也不应将其视为最后的解决方案。
但是如果没有别的选择,例如将测试添加到“旧版”代码(陈旧的代码,通常不使用面向对象的设计模式编写,则认为无法通过ABAP单元进行测试),那么您最终可能没有选择其他选择。
正如Horst Keller(全球最好的ABAP专家之一,负责SAP的ABAP文档)所说:
“如果您不能重新设计和重写整个应用程序,则可以采用一种变通方法,使代码测试依赖。这被认为是不好的样式,但它会有所帮助。”
由于问题仅是问题,sy-uname而不是整个程序,因此重构的工作量sy-uname要少得多,因此没有理由不使用类。
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |