junit4单元测试的使用说明
右键项目->properties->Java Build Path->Libraies->Add Library->JUnit->next->JUnit 4->Finish
左键要进行测试的类(比如 Hourse.java)->junit test case ->选择所要测试的方法->finish->生成一个要测试的类+Test.java的新类(HourseTest.java)
assertEquals()对结果的判断,为真是测试方法通过。
junit4单元测试的标签:
@BeforeClass 在测试初始化时执行
@Before 每次执行@Test方法测试前执行
@Ignore 忽略测试
@Test 测试方法
@After 每次执行@Test方法测试后执行
@AfterClass 在所有测试结束后执行
每个测试类只能有一个方法被标注为@BeforeClass 或 @AfterClass,并且该方法必须是Public和Static的。
限时测试@Test(timeout = 1000) timeout 毫秒数
测试异常:
如果函数应该抛出异常,但是它没抛出,JUnit帮助我们找到这种Bug。例如,我们写的计算器类有除法功能,如果除数是一个0,那么必然要抛出“除0异常”。因此,我们很有必要对这些进行测试。代码如下:
@Test(expected = ArithmeticException.class) expected 异常类
Runner (运行器)
大家有没有想过这个问题,当你把测试代码提交给JUnit框架后,框架如何来运行你的代码呢?答案就是——Runner。在JUnit中有很多个Runner,他们负责调用你的测试代码,每一个Runner都有各自的特殊功能,你要根据需要选择不同的Runner来运行你的测试代码。可能你会觉得奇怪,前面我们写了那么多测试,并没有明确指定一个Runner啊?这是因为JUnit中有一个默认Runner,如果你没有指定,那么系统自动使用默认Runner来运行你的代码。换句话说,下面两段代码含义是完全一样的:
import org.junit.internal.runners.TestClassRunner;
import org.junit.runner.RunWith; //使用了系统默认的TestClassRunner,与下面代码完全一样
public class CalculatorTest ...{...}
@RunWith(TestClassRunner.class)
public class CalculatorTest ...{...}
打包测试 Test.java
@Suite.SuiteClasses,来表明这个类是一个打包测试类
import org.jinsheng.junit.CalculatorTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
CalculatorTest.class,
CalculatorTest.class
})
public class Test{}