@Before, @BeforeClass, @BeforeEach 和 @BeforeAll之间的不同
不同注解的区别如下:
|
特性 |
Junit 4 | Junit 5 |
|
@BeforeClass | @BeforeAll |
|
@AfterClass | @AfterAll |
|
@Before | @BeforeEach |
|
@After |
@AfterEach |
标记的代码@Before在每次测试之前执行,而@BeforeClass在整个测试夹具之前运行一次。如果你的测试类有十个测试,则@Before代码将执行十次,但@BeforeClass仅执行一次。
通常,@BeforeClass当多个测试需要共享相同的计算昂贵的设置代码时,可以使用。建立数据库连接属于此类。你可以将代码从@BeforeClass移到@Before,但是测试运行可能需要更长的时间。注意,标记的代码@BeforeClass作为静态初始化程序运行,因此它将在创建测试夹具的类实例之前运行。
在JUnit 5中,标记@BeforeEach和与JUnit 4中@BeforeAll的@Before和等效。@BeforeClass它们的名称更能指示它们的运行时间,并且松散地解释为:“在每个测试之前”和“一次在所有测试之前”。

浙公网安备 33010602011771号