@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它们的名称更能指示它们的运行时间,并且松散地解释为:“在每个测试之前”和“一次在所有测试之前”。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM