首页 > 解决方案 > 如果@BeforeEach 方法中抛出异常,@AfterEach 是否仍会运行

问题描述

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

标签: javatestingjunitjunit5

解决方案


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


推荐阅读