1. 什么是单元测试?
对代码中的逻辑隔离的最小代码片段进行测试,验证其逻辑是否符合预期,单元可以是函数,方法,类,功能模块。
2. 单元测试的优点
- 掌握代码:单元测试允许开发人员了解单元提供的功能以及如何使用它以获得对单元 API 的基本了解。
- 回归测试:单元测试允许程序员改进代码并确保模块正常工作。
- 尽早测试:单元测试可以测试项目的某些部分,而无需等待其他部分完成。
- 测试左移:在软件开发的早期定位和解决错误。
- 提升复用度:使代码的可重用性更可行。
3. 单元测试的挑战
- 时间成本:编写单元测试会增加开发人员工作量,单元测试跟生产代码是一样的,并不会因为是用来测试的就有所不同,开发人员同样要面对测试代码的编写,维护等工作,要将单元测试代码写好非常考验开发人员编码能力和测试代码设计能力。
- 资源投入:推广和让单元测试发生作用投入比较大,只有让每个开发同学都编写足够好,足够稳定的单元测试代码,才能真正享受单元测试带给我们的好处,在达到这种程度之前,需要非常多的资源投入。
4. 单元测试原则
1. 写出合适的测试名称
编写测试时要考虑的基本事项是选择测试名称。这非常重要,因为好的测试名称可以提高程序员和将来可能使用该代码的其他人的代码的可读性。可以在单元测试中应用标准命名约定。
2. 创建简单的测试
保持测试代码尽可能简单是维护代码的关键。单元测试代码也可能有错误,尤其是在高度复杂的情况下。测试不需要很花哨。因此,逻辑、手动字符串或所述圈复杂度等功能应该最少。
3. 幂等性测试
只要代码保持不变,无论输入如何,测试总是会产生相同的结果。这最大限度地减少了误报和漏报的发生率。测试需要是幂等性的,因为呈现可变结果的测试是不可信的。要使测试具有幂等性,它必须与其他测试用例、环境值和外部依赖性隔离开来。
4. 解决单个使用场景
每个测试都应该只用于测试单个使用场景。这将更更易验证代码输出和更好地洞察所发现错误的原因,而无需怀疑问题是否是误报。
5. 最小化测试依赖
当测试不依赖于其他软件部分时,它们的稳定性是最好的。外部因素也不应该影响测试的结果。
6. 测试自动化
尽管可以手动进行单元测试,但当前的做法鼓励使用自动化单元测试方法。事实证明,它不仅高效、便宜,而且省时。单元测试是DevOps 自动化工具执行的一项基本功能,可简化编码过程。
最后感谢每一个阅读我文章的人,一点小心意,虽然不是啥值钱的,需要的话直接拿走: