JUnit的知识点
1 注释/元数据
引入库类:import org.junit.;
1. 说明
@Before | 初始化方法 |
@After | 释放资源 |
@Test | 测试方法,在这里可以测试期望异常和超时时间 |
@Ignore | 忽略的测试方法; 当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。 |
@BeforeClass | 针对所有测试,只执行一次,且必须为static void |
@AfterClass | 针对所有测试,只执行一次,且必须为static void |
@RunWith | 指定测试类使用某个运行器 |
@Parameters | 指定测试类的测试数据集合 |
@Rule | 允许灵活添加或重新定义测试类中的每个测试方法的行为 |
@FixMethodOrder | 指定测试方法的执行顺序 |
2. 执行顺序
一个测试类单元测试的执行顺序为:
@BeforeClass –> @Before–> @Test –> @After –> @AfterClass
每一个测试方法的调用顺序为:
@Before –> @Test –>@After
2 断言静态类Assert
引入命名空间:import staticorg.junit.Assert.;
assertArrayEquals(expecteds, actuals) | 查看两个数组是否相等。 |
assertEquals(expected, actual) | 查看两个对象是否相等。类似于字符串比较使用的equals()方法 |
assertNotEquals(first, second) | 查看两个对象是否不相等。 |
assertNull(object) | 查看对象是否为空。 |
assertNotNull(object) | 查看对象是否不为空。 |
assertSame(expected, actual) | 查看两个对象的引用是否相等。类似于使用“==”比较两个对象 |
assertNotSame(unexpected, actual) | 查看两个对象的引用是否不相等。类似于使用“!=”比较两个对象 |
assertTrue(condition) | 查看运行结果是否为true。 |
assertFalse(condition) | 查看运行结果是否为false。 |
assertThat(actual, matcher) | 查看实际值是否满足指定的条件 |
fail() | 让测试失败 |
3 多个测试类同时执行
利用org.junit.runner.JUnitCore.runClasses(TestClass1.class, …)函数,把test case 的类放进去,然后放在main()方法里执行。
比如同时执行测试类TestWordDealUtil、Test2:
public class TestMain {
public static void main(String[] args) {
org.junit.runner.JUnitCore.runClasses(TestWordDealUtil.class, Test2.class);
}
}
**demo**
public class junit_test {
@BeforeClass
public static void BeforeClass(){
System.out.println("BeforeClass : "+"针对所有测试,只执行一次,且必须为static void");
}
@Before
public void Before(){
System.out.println("Before : "+"初始化方法");
}
@Ignore
public void Ignore(){
System.out.println("Ignore : "+"忽略的测试方法;");
}
@After
public void After(){
System.out.println("After : "+"释放资源");
}
@AfterClass
public static void AfterClass(){
System.out.println("AfterClass : "+"针对所有测试,只执行一次,且必须为static void");
}
@Test
public void Test(){
System.out.println("Test : "+"测试方法,在这里可以测试期望异常和超时时间");
}
@Test
//检查对象是否为空
public void testAssertNull() {
String str = null;
assertNull(str);
}
@Test
//检查对象是否不为空
public void testAssertNotNull() {
String str = "hello Java!!";
assertNotNull(str);
}
@Test
//检查long类型的值是否相等
public void testAssertEqualsLong() {
long long1 = 2;
long long2 = 2;
assertEquals(long1, long2);
}
@Test
//检查指定精度的double值是否相等
public void testAssertEqualsDouble() {
// test case is successfull as double1 and double 2
// differ by 0.001 which is less than our specified delta
double double1 = 1.236;
double double2 = 1.237;
double delta = 0.002;
assertEquals(double1, double2, delta);
}
@Test
//检查条件是否为真
public void testAssertTrue() {
List<String> list = new ArrayList<String>();
assertTrue(list.isEmpty());
}
@Test
//检查条件是否为假
public void testAssertFalse() {
List<String> list = new ArrayList<String>();
list.add("hello");
assertFalse(list.isEmpty());
}
@Test
//检查两个对象引用是否引用同一对象(即对象是否相等)
public void testAssertSame() {
String str1 = "hello world!!";
String str2 = "hello world!!";
assertSame(str2, str1);
}
@Test
//检查两个对象引用是否不引用统一对象(即对象不等)
public void testAssertNotSame() {
String str1 = "hello world!!";
String str3 = "hello Java!!";
assertNotSame(str1, str3);
}
}