确保在 Cucumber 步骤定义中关闭 Autocloseable

Ensure Autocloseable is closed in Cucumber step definitions

我的 Cucumber Java 步骤定义可以创建 AutoCloseable 对象,这些对象可以获取外部(可能是稀缺的)资源。这些对象应该在不再需要时调用它们的 close() 方法,以释放这些资源。如何确保 close() 方法被调用?

在非 Cucumber 测试中,我会使用 try-with-resources。但这是不可能的,因为没有单一方法跨越场景的执行(AutoCloseable 对象可能在 when 方法中创建,并在稍后的 然后).

一种选择是使用带有 io.cucumber.java.After 注释的方法来调用 close() 方法。这不是很好;我们必须依靠 Cucumber,而不是 Java 自己做正确的事。