《代码整洁之道》---9. 单元测试---学习记录


单元测试

1 TDD三定律

  1. 在编写不能通过的单元测试前,不可编写生产代码。
  2. 只可编写刚好无法通过的单元测试,不能编译也算不通过。
  3. 只可编写刚好足以通过当前失败测试的生产代码。

2 保持测试整洁

测试必须随着生产代码的演进而修改。测试越脏,就越难修改。

这里脏测试的脏指的是:

  • 变量名不用好
  • 函数名不短小,不具有描述性
  • 不做好良好涉及和仔细划分

诸如此类。

结论:测试代码和生产代码一样重要!


3 整洁的测试

整洁测试三要素:

  1. 可读性!
  2. 可读性!!
  3. 可读性!!!

要尽可能用少的文字表达出大量的内容。

单测的构成应该是构造-操作-检验的模式。每个测试都应该清楚的分成三个环节。

构造-操作-检验:

  1. 构造测试数据
  2. 操作测试数据
  3. 检验操作是否得到期望的结果

3.1 面向特定领域的测试语言

我们可以将单测里面的三个环节,拆分成几个函数,这种打包一套包装生产环境API的函数和工具代码,也被称为面向特定领域的语言技巧。


3.2 双重标准

生产环境和测试环境的编写代码的标准是不同的。

有些事情在生产环境中不会做的,可能测试环境可以使用,例如生产环境的资源条件可能有限,这样我们的代码就要注意效率。而测试环境没有这个要求,就可以借此编译出更准确的代码。


4 每个测试一个断言

单测存在一种说法,

每个测试应该有且只有一个断言语句。这种说法是为了保证让一个单测保证自己测试的内容。

不要让一个单测测试很多事。这样可能会产生疏漏。我们可以用多个单元测试分开去做这些事。


5 F.I.R.S.T

整洁的测试遵循的5条原则 :

  1. 快速(Fast):测试应该快速运行。
  2. 独立(Independent): 测试之间彼此独立,不能出现前一个测试会影响后一个测试的内容的情况。
  3. 可重复(repeatable):测试应该在任何情况下都能重复通过。
  4. 自足验证(self-validating):测试应该由布尔值输出。无论通过or失败都不应查看日志进行判断测试结果。
  5. 及时(Timely):测试应该及时编写。在编写生产环境代码前编写测试。

6 小结

测试应该短小精悍富有表达力


五条原则记忆犹新,单测构成历历在目,每一天的学习每一天的进步~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值