java - 如果在@BeforeEach 方法中抛出异常,@AfterEach 是否仍然运行

标签 java testing junit junit5

在我的测试中,我在@BeforeEach 方法中进行了数据设置(这是一系列不同的实体)。我在@AfterEach 方法中清理了该数据。现在,如果在创建任何这些实体期间抛出异常,@AfterEach 方法会运行吗?目前我在我的@BeforeEach 方法中有一个 try/catch block 的解决方法,但如果 @AfterEach 方法为我处理它会减少一些代码重复。

最佳答案

所以经过进一步测试,当@BeforeEach方法发生异常时,@AfterEach方法运行在@BeforeEach方法之后. @BeforeEach 方法正在数据库中进行数据设置。它运行一系列 API 调用来创建持久保存在数据库中的所有数据。然后测试运行,然后是 @AfterEach 方法。 如果在创建实体时发生异常,@BeforeEach 方法将终止,调用 @AfterEach 方法清除所有已创建的实体。

关于java - 如果在@BeforeEach 方法中抛出异常,@AfterEach 是否仍然运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59686604/

相关文章:

performance - Jmeter——__UUID() 有多耗内存?

hibernate - 使用 spring、maven 和 hibernate 时,启动 HSQLDB 进行单元测试的最佳方式是什么?

java - Android studio v2.2.2 error(27,17) 无法解析junit :junit4. 12

java - 用于 hibernate 搜索的复合方面

java.lang.NoClassDefFoundError : org/hibernate/cfg/AnnotationConfiguration 错误

Android 从终端终止应用程序

java - JUnit 如何在Optional 和对象上断言True/Equals

java - 优化PIG中的过滤功能

java - 重绘()不工作

python - ReactorNotRestartable 在使用 twisted 和 trial 启动两个等效的单元测试时