使用JUnit4进行单元测试
以下列出一些Annotation
@Test
你要在方法的前面使用@Test 标注,以表明这是一个测试方法。对于方法的声明也有如下要求:
- 名字可以随便取,没有任何限制
- 返回值必须为 void
- 不能有任何参数
@After
使用了该元数据的方法在每个测试方法执行之后都要执行一次
@Before
使用了该元数据的方法在每个测试方法执行之前都要执行一次
@ignore
这个标注的含义就是―某些方法尚未完成,暂不参与此次测试。这样的话测试结果就会提示你有几个测试被忽略,而不是失败。一旦你完成了相应函数,只需要把@Ignore 标注删去,就可以进行正常的测试。
assertEquals(expect, result);
判断期待结果和实际结果是否相等,第一个参数填写期待结果,第二个参数填写实际结果
Fixture
任何一个测试执行之前必须执行的代码就是一个 Fixture,我们用@Before 来标注它。Fixture的含义就是在某些阶段必然被调用的代码。同理,如果在任何测试执行之后需要进行的收尾工作也是一个 Fixture,使用@After 来标注。
@BeforeClass 和 @AfterClass
从名字上就可以看出,用这两个 Fixture 标注的函数,只在测试用例初始化时执行@BeforeClass 方法,当所有测试执行完毕之后,执行@AfterClass 进行收尾工作。在这里要注意一下,每个测试类只能有一个方法被标注为@BeforeClass 或 @AfterClass,并且该方法必须是 Public和 Static 的。
限时测试
一般用于死循环检测
@Test(timeout = 1000)
异常检测
我们需要使用@Test 标注的 expected 属性,将我们要检验的异常传递给他,
这样 JUnit 框架就能自动帮我们检测是否抛出了我们指定的异常
@Test(expected = ArithmeticException.class)
public void divideByZero() {
calculator.divide(0);
}