热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

在ABAP单元测试中模拟sy-uname

如何解决《在ABAP单元测试中模拟sy-uname》经验,为你挑选了1个好方法。

我正在尝试用ABAP编写我的第一个单元测试。

我的测试方法(通过system variable sy-uname)获取登录用户的团队成员。

因为我希望测试能够为所有人运行,所以我不能只让方法运行并声明我自己的团队成员之一。

我要模拟sy-uname,所以测试不依赖于执行它的人。

这可能吗?如果是,您如何模拟系统参数?



1> Sandra Rossi..:

我一半同意由豪杰给出的答案:一个人应该使用测试接缝(因为ABAP 7.50存在)一个这么简单的情况下(更换sy-uname),你应该只因为他提出的使用提供程序类。

测试接缝被视为对生产代码的污染,因为它会降低代码的可读性(生产代码与测试代码的混合)。

注意:测试接缝的ABAP文档(上面的链接)至少提供了以下可能的用法:

授权检查(AUTHORITY-CHECK)

ABAP SQL语句(SELECT,MODIFY等)-由于ABAP SQL可以用ABAP 7.52类模拟,因此它成为一个不好的例子CL_OSQL_TEST_ENVIRONMENT

按照经验法则,完全不应使用测试接缝,也不应将其视为最后的解决方案。

但是如果没有别的选择,例如将测试添加到“旧版”代码(陈旧的代码,通常不使用面向对象的设计模式编写,则认为无法通过ABAP单元进行测试),那么您最终可能没有选择其他选择。

正如Horst Keller(全球最好的ABAP专家之一,负责SAP的ABAP文档)所说:

“如果您不能重新设计和重写整个应用程序,则可以采用一种变通方法,使代码测试依赖。这被认为是不好的样式,但它会有所帮助。”

由于问题仅是问题,sy-uname而不是整个程序,因此重构的工作量sy-uname要少得多,因此没有理由不使用类。


推荐阅读
author-avatar
美玲珍任欢治
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有