简评:写单元测试可以说是程序员的基本技能之一,编写单元测试不会浪费你的时间,反而很大程度上能避免你因为突发 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
作者:网络转载
来源:
 相关文章
单元测试系列之一开篇 单元测试的实践与思考 Python单元测试之道:从入门到精通 单元测试的重要性:编写更安全、更可... 简化Java单元测试数据 Golang单元测试详解:单元测试的基本...- 周排行
- 月排行
- 评论排行
-   单元测试的五个主要准则
-   Android开发中如何进行单元测试?
-   iOS网络接口的单元测试
-   你应该知道的单元测试
-   你们单测覆盖率是如何统计的?原理是...
-   单元测试运行原理探究
-   单元测试指南
-   Android开发中如何进行单元测试?
-   单元测试的五个主要准则
-   OpenStack项目运行单元测试
-   什么是单元测试,和集成测试有什么区别?
-   黑盒测试方法之组合覆盖法
-   一次单元测试优化的过程总结
-   测试驱动开发实践:如何使用 Xunit ...
-   从软件出发,非功能测试思考总结
-   展望2017,谁是网络技术头牌?
-   C/C++单元测试工具Visual Unit 4 介绍
-   国内外最好用的6款Bug跟踪管理系统
-   性能测试指标评估必读
-   百度软件测试方案模板
-   38张史上最全的IT工程师技能图谱
-   C/C++单元测试工具Visual Unit 4 介绍
-   2019年,你会选哪些安全测试工具?
-   十款Web服务器性能压力测试工具
-   软件测试入门指南:周期、模型和文档化
-   记自动化测试成神学习之路
-   软件测试全景图 -最全的思维导图