【问题标题】:ruby cucumber testing practices红宝石黄瓜测试实践
【发布时间】:2011-03-08 08:58:44
【问题描述】:

我有很多黄瓜特征文件,每个都有很多场景。

当一起运行时,其中一些会失败。 当我运行每个测试文件时,它们都通过了。 我认为我的数据库在每种情况下都没有正确清理。

确定导致此行为的原因的正确过程是什么?

【问题讨论】:

  • 这行是否出现在features/support/env.rb?: Cucumber::Rails::World.use_transactional_fixtures = true
  • @zetetic,是的,它出现了

标签: ruby-on-rails testing cucumber bdd


【解决方案1】:

听起来你的测试是相互依赖的。您应该尝试让每个独立测试执行该独立测试运行所需的设置。

设置部分应在功能的“给定”部分完成。 就个人而言,为了防止功能变得冗长并使其与编写它​​们的业务语言接近,我有时会添加执行设置所需的额外步骤,并从功能文件中的步骤调用它们。 如果这对你有意义

【讨论】:

  • 我的目的是写独立测试
【解决方案2】:

这发生在我身上的原因和时间不同。

有时它会在一个场景中调用存根或模拟,而这会搞砸另一个场景,但只有在它们都运行时(每个都可以单独运行)。

我能够解决这些问题的唯一方法是在运行足够多的测试以导致失败时进行调试。您可以在 step_definitions 中删除调试器行或将其作为步骤本身调用(当我调用调试器时)并将其与仅将“调试器”表示为 ruby​​ 代码的步骤定义相匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2018-06-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多