Keep the bar green to keep the code clean.
JUnit 使单元测试变得简单艺术起来。
JUnit 是 Java 社区中知名度最高的单元测试工具。它诞生于 1997 年,由 Erich Gamma 和 Kent Beck 共同开发完成。其中 Erich Gamma 是经典著作《设计模式:可复用面向对象软件的基础》一书的作者之一,并在 Eclipse 中有很大的贡献; Kent Beck 则是一位极限编程( XP )方面的专家和先驱。麻雀虽小,五脏俱全。 JUnit 设计的非常小巧,但是功能却非常强大。
Martin Fowler 如此评价 JUnit :在软件开发领域,从来就没有如此少的代码起到了如此重要的作用。
1 |
|
Junit使用规范
测试类一般命名以Tests
结尾
测试方法一般以test
开头
Junit常用注解
@Test
用于标注测试方法,必须是pubic void
。
expected
@Test(expected=ArithmeticException.class)
,抛出指定异常,否则认为测试不通过。 expected 属性的值是一个异常的类型 。
timeout
@Test(timeout=200)
,性能测试,执行时间超过200ms则测试失败该标记传入了一个时间(毫秒)给测试方法,如果测试方法在指定的时间之内没有运行完,则测试会失败,即使被测试方法测试正确也会失败。该标记主要用于测试被测试方法运行所需时间,即用于方法的简单性能测试。
@Before
每个测试方法执行前都会调用
@After
每个测试方法执行后都会调用
@BeforeClass
可以理解为测试类初始化方法,在测试方法执行前执行,初始化一些公共资源,仅执行一次,必须是static
的
@AfterClass
可以理解为测试类清理方法,在测试方法执行后执行,清理之前初始化的公共资源,仅执行一次,必须是static
的
@Ignore
有该标记的测试方法在测试中会被忽略。你可以为该标签传递一个 String 的参数,来表明为什么会忽略这个测试方法。比如: @lgnore(“this test method isn't working now ”)
,在执行的时候,仅会报告该方法没有实现,而不会运行该测试方法。
Assert
Suite
将测试类归组
1 |
|
Runner
其实Junit也是标准的java程序,其main方法为:org.junit.runner.JUnitCore#main
。Runner是用来运行测试和结果通知的,有各种不同的实现。
一般用@RunWith
指定Runner。