首页 > 代码库 > java学习篇(五)---浅谈JUnit 4

java学习篇(五)---浅谈JUnit 4

Junit4

 

JUnit4 全面引入了 Annotation 来执行我们编写的测试。

 

1.    JUnit 4 并不要求测试类继承 TestCase 父类。

 

2.    在一个测试类中,所有被@Test 注解所修饰的public,void 方法都是 test case,可以被JUnit 所执行。

 

3.    虽然 JUnit 4 并不要求测试方法名以test 开头,但我们最好还是按照 JUnit 3.8的要求那样,以test 作为测试方法名的开头。

 

4.    在JUnit 4中,通过@Before注解实现与JUnit3.8中的setUp方法同样的功能,通过@After 注解实现与JUnit 3.8 中的 tearDown 方法同样的功能。

 

5.    在 JUnit 4 中,可以使用@BeforeClass与@AfterClass 注解修饰一个public static void no-arg 的方法,这样被@BeforeClass 注解所修饰的方法会在所有测试方法执行前执行;被@AfterClass 注解所修饰的方法会在所有测试方法执行之后执行。

 

6.    @Ignore 注解可用于修饰测试类与测试方法,当修饰测试类时,表示忽略掉类中的所有测试方法;当修饰测试方法时,表示忽略掉该测试方法。

 

7.    参数化测试(Parameters)

当一个测试类使用参数化运行器运行时,需要在类的声明处加上@RunWith(Parameterized.class)注解,表示该类将不使用 JUnit内建的运行器运行,而使用参数化运行器运行;在参数化运行类中提供参数的方法上要使用@Parameters 注解来修饰,同时在测试类的构造方法中为各个参数赋值(构造方法是由 JUnit 调用的),最后编写测试类,它会根据参数的组数来运行测试多次。

 

8. 在JUnit 4 中,如果想要同时运行多个测试,需要使用两个注解:

@RunWith(Suite.class)以及@Suite.SuiteClasses(),通过这两个注解分别指定使用 Suite 运行器来运行测试,以及指定了运行哪些测试类,其中的@SuiteClasses 中可以继续指定Suite,这样 JUnit 会再去寻找里面的测试类,一直找到能够执行的 Test Case 并执行之。

 

9. 测试类的私有方法时可以采取两种方式:

1)修改方法的访问修饰符,将 private 修改为default 或 public(但不推荐采取这种方式)。

2)使用反射在测试类中调用目标类的私有方法(推荐)。

 

10.TestSuite(测试套件):可以将多个测试组合到一起,同时执行多个测试。

 

11.JUnit 中要区分错误(error)与失败(failure)

1)错误指的是代码中抛出了异常等影响代码正常执行的情况,比如抛出了ArrayIndexOutOfBoundsException,这就叫做错误。

2)失败指的是我们断言所期待的结果与程序实际执行的结果不一致,或者是直接调用了 fail()方法,这叫做失败。

 

12.JUnit 中所使用的观察者模式

java学习篇(五)---浅谈JUnit 4