一、JUnit4单元测试常用注解说明
- @BeforeClass:注解在静态方法上,被注解的方法全局只会执行一次,而且是第一个运行,一般用来做全局测试资源的加载
- @Before:注解在每次执行测试方法前都会运行的方法上,一般用来做一些所有测试方法运行前的初始化操作
- @Test:注解在测试方法上
- @After:注解在每次执行测试方法后都会运行的方法上,一般用来做一些所有测试方法运行后的保留或恢复环境的操作
- @AfterClass:注解在静态方法上,被注解的方法全局只会执行一次,而且是最后一个运行,一般用来做全局测试资源的释放
二、应用举例
单元测试的Demo(测试的Sort类代码见本博客中的算法遍)
package cn.xiaoxiang.junit;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import cn.xiaoxiang.util.Sort;
public class TestSort {
private Sort sort;
@BeforeClass
public static void uploadResource() {
System.out.println("加载资源");
}
@Before
public void before() {
sort = new Sort();
System.out.println("初合化创建排序对像");
}
@Test
public void test_bub_sort() {
int[] array_a = {1,2,5,10,3,2,9};
array_a = sort.bub_sort(array_a);
int[] array_b = {1,2,2,3,5,9,10};
//断言判断排序后的数组array_a内容和数组array_b一致
Assert.assertArrayEquals(array_b, array_a);
}
@Test
public void test_shaker_sort() {
int[] array_a = {1,2,5,10,3,2,9};
array_a = sort.shaker_sort(array_a);
int[] array_b = {1,2,2,3,5,9,10};
//断言判断排序后的数组array_a内容和数组array_b一致
Assert.assertArrayEquals(array_b, array_a);
}
@After
public void after() {
sort = null;
System.out.println("将排序对像置空");
}
@AfterClass
public static void freeResource() {
System.out.println("释放资源");
}
}