接单网站源码,wordpress网页手机自适应,wordpress怎么填写,天津行业网站建设UT的重点是处理外部依赖#xff08;dependency#xff09;#xff0c;外部依赖主要是指当前需要测试的类里用到了其他类#xff0c;Function Module或者是SQL#xff1b;可能存在外部依赖的地方是类的属性#xff0c;方法和方法参数。 处理外部依赖的做法之一是隔离…UT的重点是处理外部依赖dependency外部依赖主要是指当前需要测试的类里用到了其他类Function Module或者是SQL可能存在外部依赖的地方是类的属性方法和方法参数。 处理外部依赖的做法之一是隔离Isolation让外部依赖返回我们需要的值从而达到测试的目的常规做法是用接口Interface方法来封装外部依赖的逻辑如果外部依赖本身是类那也可以直接把这个类改写成接口。对于老的代码Legacy Code如果想做依赖隔离的话只能修改生产代码所以新开发的代码应该尽量在有外部依赖地方使用接口来保证可测性ABAP的代码检查ATC里有一项是类里所有的公有Public方法都需要写成接口方法当然这只是建议不是强制的。 UT用的接口可以是全局的也可以局部的局部的话是定义在类的Local部分。全局的好处是可以使用test double framework动态创建实现类并且可以指定方法返回值局部的好处是不用定义全局对象接口和测试的实现类test double class都在类的Local文件里定义和实现测试类方法的返回值可以自己写逻辑指定。 定义好接口后就是在测试环境里把接口的测试实例化对象“注入”到类里常见做法是把测试用的接口都定义类的属性需要是公有的或者有对应的外部调用方法之后在测试环境中实例化CONSTRUCTOR方法测试类后进行“注入”这样就实现了隔离在生产环境下调用生产代码的逻辑在测试环境里调用测试代码。 Function Module除了可以使用接口封装外也可以用Function Module的test double framework。 上面说的方法都是通过隔离外部依赖自定义返回值来达到测试的目的如果确定外部依赖的逻辑的话也可以通过给“假数据”mock data的方法进行测试。比如如果知道外部依赖设计数据库交互并且知道是哪些数据库表的话可以用SQL test double类cl_osql_test_environment直接mock数据库表的数据这样在测试环境中运行的话会得到mock后的值而不是实际数据库里的值。同样如果确定外部依赖的类方法和Function Module的内部逻辑也可以通过造“假数据”返回特定的值但这种做法不是每个类方法和Function Module都能使用的这时就要具体方法具体分析了。 总体来说隔离外部依赖更加常用这种做法是不会执行外部依赖的代码的所以可以保证可测性而后面那种做法则会实际执行外部依赖代码只不过我们了解其中的过程通过造一些“假数据”来控制外部依赖返回的值但不保证总是可行的。 总结一下作为UT开发者首先要关注外部依赖然后进行相对应的处理而作为生产代码开发者如果为要保证代码的可测性需要尽量把外部依赖封装成接口不然后面想要补UT的话需要修改生产代码。