美文网首页
代码的测试

代码的测试

作者: _1633_ | 来源:发表于2021-01-19 23:25 被阅读0次

    1. 什么是代码的可测试性?

        粗略地讲,所谓代码的可测试性,就是针对代码编写单元测试的难易程度。对于一段代码,如果很难为其编写单元测试,或者单元测试写起来很费劲,需要依靠单元测试框架中很高级的特性,那往往就意味着代码设计得不够合理,代码的可测试性不好。

        2. 编写可测试性代码的最有效手段

            依赖注入是编写可测试性代码的最有效手段。通过依赖注入,我们在编写单元测试的时候,可以通过 mock 的方法解依赖外部服务,这也是我们在编写单元测试的过程中最有技术挑战的地方。

        3. 常见的 Anti-Patterns

            常见的测试不友好的代码有下面这 5 种:

                1 代码中包含未决行为逻辑

                    所谓的未决行为逻辑就是,代码的输出是随机或者说不确定的,比如,跟时间、随机数有关的代码。我们一般的处理方式是将这种未决行为逻辑重新封装。针对 Transaction 类,我们只需要将交易是否过期的逻辑,封装到 isExpired() 函数中即可。

                    也就是说将这些 变化的不确定因素 抽象出来,放入函数 或者配置项中,这就是我们说的 开闭原则,减少 测试代码的 依赖性 和 业务的具体逻辑,留下来的都是 抽象的逻辑代码,不涉及业务 具体数据。

                2 滥用可变全局变量

                3 滥用静态方法

                4 使用复杂的继承关系

                5 高度耦合的代码

                    如果一个类职责很重,需要依赖十几个外部对象才能完成工作,代码高度耦合,那我们在编写单元测试的时候,可能需要 mock 这十几个依赖的对象。不管是从代码设计的角度来说,还是从编写单元测试的角度来说,这都是不合理的。

    相关文章

      网友评论

          本文标题:代码的测试

          本文链接:https://www.haomeiwen.com/subject/htchzktx.html