确保在 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 自己做正确的事。
我的 Cucumber Java 步骤定义可以创建 AutoCloseable
对象,这些对象可以获取外部(可能是稀缺的)资源。这些对象应该在不再需要时调用它们的 close()
方法,以释放这些资源。如何确保 close()
方法被调用?
在非 Cucumber 测试中,我会使用 try-with-resources。但这是不可能的,因为没有单一方法跨越场景的执行(AutoCloseable
对象可能在 when 方法中创建,并在稍后的 然后).
一种选择是使用带有 io.cucumber.java.After
注释的方法来调用 close()
方法。这不是很好;我们必须依靠 Cucumber,而不是 Java 自己做正确的事。