JUint
在项目中导入JUint jar包:右键Build Path->Add Libraries->JUnit
在项目中可以创建一个source folder
,名为test,用来放置测试文件。
自动生成测试类方法:在测试类上右键 -> 选择New -> JUnit Test Case -> Next 选择对应的方法
测试方法必须使用@Test
进行修饰
测试方法必须使用public void
进行修饰,不能带任何的参数
测试类的包应该和被测试类保持一致
测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
测试类使用Test作为类名的后缀(不是必须)
测试方法使用test作为方法名的前缀(不是必须)
测试失败的两种情况
Failure一般由单元测试使用的断言方法判断失败所引起的
Error是由代码异常引起的
测试用例不是用来证明你是对的,而是用来证明你没有错
JUnit运行流程
如下测试代码:
package com.imooc.util;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class JunitFlowTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("BeforeClass");
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println("AfterClass");
}
@Before
public void setUp() throws Exception {
System.out.println("Before");
}
@After
public void tearDown() throws Exception {
System.out.println("After");
}
@Test
public void test1() {
System.out.println("Test1");
}
@Test
public void test2() {
System.out.println("Test2");
}
}
测试运行,输出如下:
BeforeClass
Before
Test1
After
Before
Test2
After
AfterClass
@BeforeClass
修饰的方法会在所有方法被调用前被执行,而且该方法是静态的,所以当测试类被加载后接着就会运行它,而且在内存中它只会存在一份实例,它比较适合加载配置文件。
@AfterClass
所修饰的方法通常用来对资源的清理,如关闭数据库的连接。
Before
、After
修饰的方法会在每个测试方法运行前和运行后各执行一次。
Junit常用注解
@Test
将一个普通的方法修饰成为一个测试方法,有两个属性。
@Test(expected=XX.class)
属性expected用来捕获异常
@Test(expected=ArithmeticException.class)
public void testDivide() {
assertEquals(3, new Calculate().divide(6, 0));
}
@Test(timeout=毫秒)
对方法运行的时间进行限制
@Test(timeout=2000)
public void testWhile() {
while(true) {
System.out.println("run forever...");
}
}
@Ignore
所修饰的测试方法会被测试运行器忽略
@RunWith
可以更改测试运行器
测试套件
1.测试套件就是组织测试类一起运行的
2.写一个作为测试套件的入口类,这个类里不包含其他的方法。
3.更改测试运行器Suite.class.
4.将要测试的类作为数组传入到Suite.SuiteClasses({})
eg:@RunWith(Suite.class) @Suite.SuiteClasses({TaskTest1.class,TaskTest2.class,TaskTest3.class})
public class SuiteTest{}
//再建几个JUnit的测试类//TaskTest1.class,TaskTest2.class,TaskTest3.class