如何写单元测试(5)—Android开发进阶

发表于:2016-6-27 13:25

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

 作者:何红辉    来源:51Testing软件测试网原创

  (51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  最后我们在AdderTest类名上单击右键,在弹出的菜单中依次选择Run as → Junit Test项即可运行该测试用例。得到的结果如图7-5所示。
  
▲图9-4 添加Junit                                   ▲图9-5 运行结果
  运行成功后进度条会为绿色,如果失败则为红色,并且会在下面的提示信息中告诉你那个地方测试失败了。例如,我们在AdderTest中添加如下一句测试代码:
  // 1加1等3,肯定会失败
  assertEquals(3, mAdder.add(1, 1));
  重新运行测试用例,得到的结果如图9-6所示。
  在图9-6中表示在testAdd测试函数中运行失败,失败的原因是add方法返回的值是2,但是期待的结果却是3。这两个值都被"<>"包裹起来,便于开发人员快速找出问题所在。发现问题之后,我们把3改为2,测试就可以通过了。
▲图9-6 测试用例运行失败
  9.4.2  Junit简介
  上一节中我们完成了第一个看似没有什么用的单元测试,该测试基于Junit 4。为了更好地学习后续的知识,本节我们就先来了解一下Junit框架本身的一些机制。
  JUnit是一个基于Java语言的单元测试框架,它由Kent Beck和Erich Gamma创建,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。Kent Beck是敏捷开发先驱,就连Martin Fowler这样的编程大师都深受其影响。Erich Gamma则是著名的GOF之一,也就是《设计模式:可复用面向对象软件的基础》作者之一。据说Junit框架最初是Kent Beck在一次长途飞机上完成的,以至于许多年以后,Kent Beck说:"我想我们是在飞机上写程序。"
  9.4.2.1  Junit执行流程
  开发人员需要新建一个继承自TestCase的类,然后在该测试类中添加测试函数。测试函数必须以test开头,并且是public的,例如上一节中的testAdd。而在每个TestCase被执行之前都会调用setup方法进行初始化,例如上一节中的mAdder对象就是在该方法中初始化,当然,这个mAdder也可以在每个测试方法中进行处理。在TestCase结束之前则会调用tearDown函数进行一些扫尾工作。它的执行流程大致如图9-7所示。
  需要注意的是,每个测试方法、TestCase之间并没有什么关联,它们的执行顺序也不一定是代码中的顺序,因此,试方法之间不要存在依赖性。
本文选自《Android开发进阶—从小工到专家》第九章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号