JUnit 5.x 知识点

出处:https://blinkfox.github.io/2018/11/15/hou-duan/java/dan-yuan-ce-shi-zhi-nan/#toc-heading-14

表面上来看,使用方式和 Junit4 差别不大,但是与 JUnit4 比较起来还是有些不同的。

  1. 导入测试测试注解(@Test)和断言方法(assertEquals)的包路径不同。
  2. 不需要手动把测试和测试方法声明为public了。

@Test: 表示该方法是一个测试方法。与JUnit 4的@Test注解不同的是,它没有声明任何属性,因为JUnit Jupiter中的测试扩展是基于它们自己的专用注解来完成的。这样的方法会被继承,除非它们被覆盖。

出处:https://doczhcn.gitbook.io/junit5/index/index/what-is-junit-5

使用@Test,@TestTemplate,@RepeatedTest,@BeforeAll,@AfterAll,@BeforeEach或@AfterEach注解的方法不能有返回值。

测试类和测试方法都不必是public。

如果您希望JUnit Jupiter在同一个测试实例上执行所有测试方法,只需使用@TestInstance(Lifecycle.PER_CLASS)对您的测试类进行注解即可。当使用这种模式时,每个测试类将创建一个新的测试实例。因此,如果您的测试方法依赖于存储在实例变量中的状态,则可能需要在@BeforeEach或@AfterEach方法中重置该状态。

"per-class"模式比默认的"per-method"模式有一些额外的好处。具体来说,使用"per-class"模式,可以在非静态方法和接口默认方法上声明@BeforeAll和@AfterAll。因此,"per-class"模式也可以在@Nested测试类中使用@BeforeAll和@AfterAll方法。

posted on 2019-08-05 16:04  cag2050  阅读(332)  评论(0编辑  收藏  举报

导航