zoukankan      html  css  js  c++  java
  • 如何做test review

    Test Review Guidelines给出了一些review unit test时的一些准则,我简单翻译一下。

    可读性:

    1. 确保setup和teardown方法没有被滥用。最好用factory method来提高可读性。
    2. 确保每个test只测试了一件事。
    3. 检查是否符合好的,一致的命名规范。
    4. 确保只有有意义的assert message才被用到,用有意义的test名称更好。
    5. 确保assert和action分开。
    6. 确保测试没有使用magic string/value作为输入,用可能的最简单的输入来验证。
    7. 确保测试放置的位置具有一致性,可以方便的找到一个方法,一个类,一个项目相关的测试。

    可维护性:

    1. 确保test之间没有依赖关系,并且是可以重复的。
    2. 确保测试private或者protected地测试是个例,测试public的总是更好。
    3. 确保测试没有过分详细。
    4. 确保总是优先考虑基于状态的测试,其次才是基于交互的测试。
    5. 确保尽量少使用精确的mock(否则会导致过分详细和脆弱的测试)。
    6. 确保每个测试中只是用了一个mock。
    7. 确保在同一个测试中没有混淆mock和正常的assert。
    8. 确保测试只验证一个mock的函数调用。(否则会导致过分详细和脆弱的测试)。
    9. 确保测试只验证一个mock的一个函数调用。(否则会导致过分详细和脆弱的测试)。
    10. 确保只有在非常少的情况下,一个mock被同时当作一个stub来使用,在验证的同时返回值。

    可信性:

    1. 确保测试不包含逻辑或者动态的数值。
    2. 通过改变数值(布尔或者常量)来检查测试覆盖率。
    3. 确保单元测试和集成测试分开。
    4. 确保测试没有使用一直在变化的值(比如系统当前时间),应该使用固定的值。
    5. 确定测试没有assert动态产生的期望值。(你可能只是在重复的你的production code,没有起到测试的作用)。
  • 相关阅读:
    [转]Java 反射在实际开发中的应用
    phantomjs生成网页快照,有些https 证书不支持问题解决
    PHP + TrackingMore物流信息跟踪
    rabbitMQ消息队列 – Message方法解析
    MySQL UNION 与 UNION ALL 语法与用法
    提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
    php商品对比功能代码分享
    Redis类的源码使用
    php+redis实现消息队列
    PHP中利用redis实现消息队列处理高并发请求
  • 原文地址:https://www.cnblogs.com/fresky/p/2808079.html
Copyright © 2011-2022 走看看