Android单元测试的利器:Juint(二):Juint的生命周期

发表于:2017-10-24 15:24

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

 作者:珠穆朗玛小王子    来源:51Testing软件测试网采编

  前言
  上个星期总算是忙起来了,于是博客就休息了一个星期,这次我们接着聊Juint,看看他更多的用法。
  再次强调:这是基于Juint 4.0 以上版本,跟之前的版本的用法还是有差别的。
  正文
  首先我们回顾一下上次的简单的demo:
  public class TimeUtilTest {
  /**
  * 运行的测试方法,注意需要使用@Test注解
  */
  @Test
  public void timeFormat_isCorrect() throws Exception {
  long time = 1505720213000L;
  //预期的结果
  String result = "2017/09/18 15:36:53";
  // TimeUtil是编写的Java工具类
  assertEquals(result, TimeUtil.formateTime(time));
  }
  }
  在Juint中,所有需要运行的测试都需要使用@test注解,否则这个方法是不会被运行的。
  可以说Juint的大部分功能都是通过注解使用的,根据功能我把注解分为两类:
  1、生命周期注解
  2、功能类注解
  生命周期注解
  生命周期注解,就是从我们开始运行一个测试用例到运行结束期间会触发的方法,跟Activity类似,他也是有固定的生命周期的。
  生命周期注解主要有:
  1、@BeforeClass 必须是static方法,被注解的方法将会测试最开始的时候调用
  2、@Before 被注解的方法会在每一次调用@test之前调用
  3、@Test 要运行的测试方法
  4、@After 被注解的方法会在每一次调用@test之后调用
  5、@AfterClass 必须是static方法,被注解的方法将会测试结束的时候调用
  下面是一段测试代码:
  public class LifeCycleTest {
  @BeforeClass
  public static void beforeClass(){
  System.out.println("beforeClass");
  }
  @Before
  public void before(){
  System.out.println("before");
  }
  @Test
  public void testOne(){
  System.out.println("test One");
  }
  @Test
  public void testTwo(){
  System.out.println("test Two");
  }
  @After
  public void after(){
  System.out.println("after");
  }
  @AfterClass
  public static void afterClass(){
  System.out.println("afterClass");
  }
  }
  代码里注解了两个测试方法testOne和testTwo,现在我们运行一下:
  这里写图片描述
  从打印上看到,整个测试流程从@BeforeClass开始,中间运行了testOne,然后运行了testTwo,而每一次运行测试方法时,也运行了@Before和@After方法,最终到@AfterClass结束。
  分别看一下testOne和testTwo的打印:
  这里写图片描述
  这里写图片描述
  从上面两张图可以更加直观的看到@Before和@After的确在每一个测试方法前后都运行了,并且属于这个测试方法的整个运行周期。
  我们画一个简单的流程图:
  这里写图片描述
  有了对Juint的生命周期的了解,我们就可以更加准确合理的使用每一个测试对象:
  类似于Activity的OnCreate和OnDestroy
  @BeforeClass 适合在测试开始时,加载必要的资源。
  @AfterClass 在测试结束时,释放之前加载的资源。
  @Before 初始化每一个测试方法的全局变量
  @After 测试结束后,进行一些打印和全局变量的重置
  很遗憾,我们无法知道正在运行的是哪个测试方法,所以也就无法让@Before和@After为每一个测试方法做一些专门的准备。因为@Before和@After是为了全局而存在的,也是为了把每一个测试方法都独立开,对于这种设计我们也是应该可以理解的。
  总结
  这一篇我们已经弄明白了Juint运行的主要生命周期,也是我们编写本地测试最常用的知识,到此为止,对于一般般的测试,我们已经能轻松搞定了。
相关文章Android单元测试的利器:Juint的介绍和基础使用

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号