简评:写单元测试可以说是程序员的基本技能之一,编写单元测试不会浪费你的时间,反而很大程度上能避免你因为突发 bug 而周末加班的情况。
作者在文中提出了三个原则来帮助大家写出高质量的单元测试:
1.运行快速
单元测试有两个好处:
· 确定什么正常工作;
· 检测什么停止了工作。
测试是用来运行的,每次运行,都能够反馈你代码的状况。测试运行的越快,你就越早能注意到 bug,也不容易让人觉得运行测试是一件很麻烦的事情,不会只在每次发布之前或者每天结束的时候才运行。
要想测试运行得快,也就意味着必须:
· 运行在 JVM 中而不是设备上;
· 只测试独立的业务逻辑块;
· 不要在你的主要测试中涉及到 UI、数据库或网络测试;
· 测试中不要使用 wait/sleep 语句。
2.小而专注
在编写测试时,心里应时刻明确每个测试是用来检测什么错误的。
比如出现一个 bug,哪种情况你更喜欢:
· 一个 bug -> 多个测试失败
· 一个 bug -> 一个测试失败
相信大多数人都会选择第二种情况,因为这意味着你的测试重复度低,这样的测试通常你看一眼名字就知道是哪里错了。比如:
@Test
public void logInShouldFailWithWrongPassword() throws Exception {
// Test code
}
也就是对于每一个错误,正好一个测试失败,并且测试名就描述了错误产生的原因。
也就意味着你应当:
· 测试是多而小,而不是少而大的;
· 每个测试只测试一个功能点;
· 用测试的名称准确描述错误产生的原因。
3.100%可靠
测试是你的安全带,要想 100% 发挥测试的威力,那就要 120% 的认真对待测试,保证测试自己是完全可靠的。
最浪费时间和令人泄气的事情,莫过于出现了一个 bug,所有的测试还都运行通过了。
因此对于测试来讲,最最重要的事情莫过于保证测试自己的正确可靠了。
编写优秀的单元测试
发表于:2017-08-06
作者:网络转载
来源:
 相关文章
如何为 Nest.js 编写单元测试和 E2E 测试 精通Python单元测试:掌握Unittest模... 单元测试系列之一开篇 单元测试的实践与思考 Python单元测试之道:从入门到精通 单元测试的重要性:编写更安全、更可...- 周排行
- 月排行
-   白盒测试怎么测?
-   单元测试系列之一开篇
-   单元测试指南
-   单元测试中捕获异步方法的指定异常
-   C#中单元测试如何部署配置文件?
-   淘系用户平台技术团队单元测试建设
-   使用RazorGenerator对视图View进行单元测试
-   一次单元测试优化的过程总结
-   单元测试系列之一开篇
-   什么是单元测试,和集成测试有什么区别?
-   白盒测试怎么测?
-   Android 单元测试,从小白到入门开始
-   测试驱动开发实践:如何使用 Xunit ...
-   单元测试中捕获异步方法的指定异常