当前位置: 首页 > news >正文

整洁的测试遵循的规则


F.I.R.S.T


整洁的测试遵循以下5条规则


快速(Fast) 测试应该够快。测试应该能快速运行。测试运行缓慢,你就不回想要频繁地运行它。如果你不频繁运行测试,就不能尽早发现问题,也无法轻易修正,从而也不能轻而易举地清理代码。最终,代码就会腐败。


独立(Independent) 测试应该相互独立。某个测试不应该为下一个测试设定条件。你应该可以单独运行每个测试,以及任何顺序运行测试。当测试互相依赖时,头一个没通过就会导致一连串的测试失败,使问题诊断变得困难,隐藏了下级错粗。


可重复(Repeatable) 测试应当可在任何环境中重复通过。你应该能够生产环境、质检环境中运行测试,也能够在无网络的列车上用笔记本电脑运行测试。如果测试不能在任何环境中重复,你就总会有个解释其失败的接口。当环境条件不具备时,你也会无法运行测试。


自足验证(Self-Validating) 测试应该有布尔值输出。无论是通过或失败,你不应该查看日志文件来确认测试是否通过。你不应该手工对比两个不同文本文件来确认测试是否通过。如果测试不能自足验证,对失败的判断就会变得依赖主观,而运行测试也需要更长的手工操作时间。


及时(Timely) 测试应及时编写。单元测试应该恰好在使其通过的生成代码之前编写。如果在编写生成代码之后编写测试,你会发现生成代码难以测试。你可能会认为某些生产代码本身难以测试。你可能不会去设计可测试的代码。

转载于:https://www.cnblogs.com/ahao214/p/5127513.html

相关文章:

  • server配置学习 ---- 关闭防火墙
  • 第一章 C++编程基础
  • DataBind()方法实现数据绑定
  • Qt 和 Boost关于信号和槽的对比说明
  • APT典型应用示例
  • 20160119--进销存系统分析
  • Swift教程之typealias代替OC的typedef
  • 安装XAMPP
  • ubuntu15.10安装 jdk
  • 属性与字段的区别
  • 使用OGGquot;Loading data from file to Replicatquot;的方法应该注意的问题:replicat进程是前台进程...
  • java 单例模式总结
  • MAC下配置OpenCV的具体方法(2016年最新)
  • iOS 后台操作的开发(转)
  • Number 类型
  • 【comparator, comparable】小总结
  • 4. 路由到控制器 - Laravel从零开始教程
  • CSS盒模型深入
  • extjs4学习之配置
  • flutter的key在widget list的作用以及必要性
  • java正则表式的使用
  • laravel5.5 视图共享数据
  • Python socket服务器端、客户端传送信息
  • Redis 中的布隆过滤器
  • SQLServer之索引简介
  • win10下安装mysql5.7
  • 关于Flux,Vuex,Redux的思考
  • 精彩代码 vue.js
  • 驱动程序原理
  • 手写双向链表LinkedList的几个常用功能
  • 应用生命周期终极 DevOps 工具包
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • hi-nginx-1.3.4编译安装
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​决定德拉瓦州地区版图的关键历史事件
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #Linux(帮助手册)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (循环依赖问题)学习spring的第九天
  • (转)EOS中账户、钱包和密钥的关系
  • (转)德国人的记事本
  • (转)视频码率,帧率和分辨率的联系与区别
  • .aanva
  • .java 9 找不到符号_java找不到符号
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core 6 集成和使用 mongodb
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET构架之我见
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net生成的类,跨工程调用显示注释