码迷,mamicode.com
首页 > 其他好文 > 详细

junit 的几个注解

时间:2015-09-16 12:52:48      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

  在编码的过程中,需要单元测试,写测试用例,junit就能派上用场。我现在把一个测试方法当作一个测试用例。

  在早期junit3中,需要继承junit.framework.TestCase,这里有诸多限制:比如测试的方法名必须以test开头,setUp、tearDown方法名也是固定的。setUp、tearDown的用途就是统一给多个测试方法准备数据、清理现场,减少了重复工作,在测试术语中他们叫测试夹具。一个完整的测试用例:先执行setUp,再执行测试方法,最后执行tearDown。各个测试用例之间是没有顺序的。     

  在现在的junit4中,扩展了几个注解,不需要继承junit.framework.TestCase

1、@BeforeClass:放在一个public static void方法上,这个方法最先执行,而且只执行一次。可以用于加载一些静态配置文件,环境设置等。

2、@AfterClass:放在一个public static void方法上,这个方法最后执行,而且只执行一次。可用于清理数据、环境等。在某些情况下,环境的设置与清理只需要执行一次,可以考虑使用@BeforeClass、@AfterClass,相对与@Before、@After来说,效率有所提高。

3、@Before:放在一个public void方法上,在每个测试方法执行之前执行。一般的用途为测试方法准备测试数据。

4、@After:放在一个public void方法上,在每个测试方法执行之后执行。一般的用途为清理现场,不干扰下一个测试方法的执行。

5、@Test放在一个public void方法上,这是执行测试的方法,是测试主体

6、@Ignore:可以放在测试方法上,忽略该测试方法不执行;也可以放在测试类上,整个测试类的所有测试方法将会忽略掉,不执行。

7、@FixMethodOrder:放在测试类上。某些情况下,如果需要测试方法按照一定的顺序执行,可以加上他。一般来说,测试方法之间是相互独立的,没有执行顺序的要求。

   虽然加注解的方法名可以任意写其他合法的方法名,但最好还是表意,便于阅读理解。详见代码:

package cn.wonhigh.o2o.test;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runners.MethodSorters;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class Junit4Test {
	
	// 方法名任意
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		System.out.println("最先执行");
	}
	
	// 方法名任意
	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		System.out.println("最后执行");
	}
	
	// 方法名任意
	@Before
	public void setUp() throws Exception {
		System.out.println("在测试方法之前执行");
	}
	
	// 方法名任意
	@After
	public void tearDown() throws Exception {
		System.out.println("在测试方法之后执行");
	}
	
	// 方法名任意
	@Test
	public void method1() {
		System.out.println("测试方法1");
	}
	
	// 方法名任意
	@Test
	public void method2() {
		System.out.println("测试方法2");
	}

	// 该方法将被忽略调,不会执行
	@Ignore
	@Test
	public void method3() {
		System.out.println("测试方法3");
	}

}

输出:

最先执行
在测试方法之前执行
测试方法1
在测试方法之后执行
在测试方法之前执行
测试方法2
在测试方法之后执行
最后执行


junit 的几个注解

标签:

原文地址:http://my.oschina.net/u/2007041/blog/506769

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!