如何清理 Capybara/Cucumber 场景之间的状态?

Vas*_*ily 3 ruby cucumber capybara

我一直在阅读 Capybara 文档,虽然它是 BDD 的一个很好的工具,但我无法弄清楚如何在场景之间重置状态。

我看到了一些对 Before/After 步骤的引用,但它们似乎适用于每个单独的步骤而不是场景。我无法在网上找到有关此主题的任何权威文档。

注意:我不是 ruby​​ 开发人员,只是涉足 Capybara/Cucumber 堆栈,所以我对 ruby​​ 技术的接触有限,我可能会遗漏一些明显的东西。

DNN*_*NNX 5

我看到了一些对 Before/After 步骤的引用,但它们似乎适用于每个单独的步骤而不是场景

这不是真的。看看文档

Before hooks 将在每个场景的第一步之前运行。它们将按照它们注册的相同顺序运行。

After hooks 将在每个场景的最后一步之后运行,即使存在失败、未定义、挂起或跳过的步骤。

至于清理状态,像database_cleaner这样的 3rd-party gems可能会有所帮助。但是,同样,您可以在不依赖任何 gem 的情况下清理状态,仅使用 Before 和 After 钩子。