美文网首页
代码的测试

代码的测试

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

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

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

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

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

    3. 常见的 Anti-Patterns

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

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

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

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

            2 滥用可变全局变量

            3 滥用静态方法

            4 使用复杂的继承关系

            5 高度耦合的代码

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

相关文章

  • 科创课程002串口 与 机械臂

    通过电位器进行读数的测试: claw 测试 前臂代码测试 后臂代码测试 底座测试 串口代码1 代码2 代码3

  • 测试代码块

    测试代码段 测试代码段

  • day30-jQuery

    一、广告窗 代码 测试结果 二、表格操作 代码 测试结果 三、添加删除标签 代码 测试结果 四、作业 代码 测试结果

  • 单元测试

    测试驱动编程 先编写测试程序再编写代码 需求说明——测试程序——代码 测试尽可能覆盖尽量多的代码 代码覆盖度工具 ...

  • JavaScript排序算法总结

    0. 打乱数组 源代码 测试 测试结果 1. 插入排序 源代码 测试 测试结果 2. 冒泡排序 源代码 测试 测试...

  • ERC20 合约代码(可增发)

    合约代码 测试 发布后使用代码测试:

  • 《编写可测试javascript》 第五章 代码覆盖

    代码覆盖率测试的代码/全部代码 代码覆盖高,不代表测试程度高 代码覆盖低,测试程度一定低 测试覆盖率需要将原始js...

  • Lua 逗号和点号的区别

    测试代码 (一) 把这段代码运行到测试地址进行测试,得到如图所示的结果 测试代码(二) test:func(1,2...

  • day9-作业

    封装代码 测试文件内容 测试代码以及结果

  • Go testing使用

    性能测试 代码: 结果: 测试单个方法 代码: 结果:

网友评论

      本文标题:代码的测试

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