【问题标题】:If an exception is thrown in the @BeforeEach method, will @AfterEach still run如果@BeforeEach 方法中抛出异常,@AfterEach 是否仍会运行
【发布时间】:2020-01-10 17:44:24
【问题描述】:

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

【问题讨论】:

  • 为什么你会假设@BeforeEach-方法会抛出异常?在这一点上,测试似乎被破坏或设计不当。
  • 请添加详细信息:您是否在数据库中创建实体?如果是,您执行哪一项?

标签: java testing junit junit5


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 2019-05-15
    • 2016-06-15
    • 1970-01-01
    • 2018-11-26
    • 2010-12-06
    相关资源
    最近更新 更多