编写优秀的单元测试

发表于:2017-2-24 10:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Hevin    来源:51Testing软件测试网采编

  简评:单元测试可以说是程序员的基本技能之一,编写单元测试不会浪费你的时间,反而很大程度上能避免你因为突发 bug 而周末加班的情况。
  作者在文中提出了三个原则来帮助大家写出高质量的单元测试:
  1.运行快速
  单元测试有两个好处:
  · 确定什么正常工作
  · 检测什么停止了工作。
  测试是用来运行的,每次运行,都能够反馈你代码的状况。测试运行的越快,你就越早能注意到 bug,也不容易让人觉得运行测试是一件很麻烦的事情,不会只在每次发布之前或者每天结束的时候才运行。
  要想测试运行得快,也就意味着必须:
  · 运行在 JVM 中而不是设备上;
  · 只测试独立的业务逻辑块;
  · 不要在你的主要测试中涉及到 UI、数据库或网络测试;
  · 测试中不要使用 wait/sleep 语句。
  2.小而专注
  在编写测试时,心里应时刻明确每个测试是用来检测什么错误的。
  比如出现一个 bug,哪种情况你更喜欢:
  · 一个 bug -> 多个测试失败
  · 一个 bug -> 一个测试失败
  相信大多数人都会选择第二种情况,因为这意味着你的测试重复度低,这样的测试通常你看一眼名字就知道是哪里错了。比如:
  @Test
  public void logInShouldFailWithWrongPassword() throws Exception {
  // Test code
  }
  也就是对于每一个错误,正好一个测试失败,并且测试名就描述了错误产生的原因。
  也就意味着你应当:
  · 测试是多而小,而不是少而大的;
  · 每个测试只测试一个功能点;
  · 用测试的名称准确描述错误产生的原因。
  3.100%可靠
  测试是你的安全带,要想 100% 发挥测试的威力,那就要 120% 的认真对待测试,保证测试自己是完全可靠的。
  最浪费时间和令人泄气的事情,莫过于出现了一个 bug,所有的测试还都运行通过了。
  因此对于测试来讲,最最重要的事情莫过于保证测试自己的正确可靠了。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号