IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 代码整洁之道【8】-- 单元测试 -> 正文阅读

[开发测试]代码整洁之道【8】-- 单元测试

本章介绍了编写单元测试时候的一些要点。

敏捷和TDD(测试驱动开发)运动鼓舞了很多程序员编写自动化单元测试,但是许多程序员遗漏了一些关于编写好测试程序的更细微却重要的要点。

一、TDD三定律

①在编写不能通过的单元测试前,不可编写生产代码;
②只可编写刚好无法通过的单元测试,不能编译也算不通过;
③只可编写刚好足以通过当前失败测试的生产代码;

二、保持测试整洁

测试代码和生产代码一样重要。测试必须随着生产代码的演进而修改。

正是单元测试使得代码可扩展,可维护,可复用。没有单元测试的保证,就不敢放心地改动代码。测试使代码改动变得可能。

覆盖了生产代码的自动化单元测试能很大程度地保持设计和架构的整洁。有了覆盖率高的测试,可以毫无顾虑地改进架构和设计。

三、整洁的测试

整洁测试的三要素:可读性、可读性、可读性!
在单元测试中,可读性甚至比在生产代码更重要。
测试代码应该和生产代码一样,做到明确、简洁,有足够的表达力,呈现出构造–>测试–>验证的模式。

面向特定领域的测试语言:对于特定领域的测试,可以构造一些函数和工具代码来测试API,不用直接测试目标API;

四、每个测试函数只测一个概念

有的流派认为,Junit中,每个测试函数都应该有且只有一个断言语句(assert)。这条规则虽然有用但是过于苛求了。更好的做法是单个测试中断言的数量应该最小化,每个测试函数只测一个概念(一类场景)。

五、F.I.R.S.T

Fast–快速:测试应快速运行;如果测试运行缓慢,你就不会想要频繁的运行它,如果你不频繁的运行测试,就不能尽早发现问题,最终,代码就会变坏。

Independent–独立:测试间相互独立,不能有所依赖;某个测试不应为下一个测试设定条件。你应该可以独立运行每个测试,及以任何顺序运行测试。

Repeatable–可重复:测试应在任何环境中可重复通过;

Self-Validating–自足验证:测试应由布尔输出进行验证,无论通过还是失败,你不应该查看日志来确认测试是否通过。

Timely–及时:测试应及时编写。单元测试应该恰好在使其通过的生产代码之前编写。如果在编写生产代码之后编写测试,你会发现生产代码难以测试。

参考
《代码整洁之道》

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:32:02  更:2021-10-06 12:32:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:43:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码