【问题标题】:Nested Context Blocks in RSpecRSpec 中的嵌套上下文块
【发布时间】:2015-10-31 02:54:04
【问题描述】:

将上下文块嵌套在其他上下文块中似乎很糟糕?

例如:

describe "update_management" do
  context "with a typical update" do
    context "when a red flag has been raised" do
      it "" do
      end
    end
    context "when a yellow flag has been raised" do
      it "" do
      end
    end
    etc...
  end
end

【问题讨论】:

  • 嵌套上下文块是一种常见的做法。他们在那里帮助您组织规格,根据需要使用。但是在上面的示例中,它们不是必需的,因为内部上下文描述也可能是示例规范描述。

标签: ruby rspec


【解决方案1】:

虽然这是一个老问题,但出于两个原因,我将在此处发布另一个答案:

  1. 这是几乎所有与 RSpec 上下文嵌套相关的 Google 搜索结果。

  2. 这里唯一的其他答案指向 BetterSpecs,它没有明确解决这个问题,也没有搜索功能......但是。


可以在 RSpec 中嵌套上下文,它们将起作用。问题是它是一个有点两极分化的话题,有些人宁愿远离它。有些人会告诉你这是一个很好的做法,其他人会告诉你这不是......没有真正的 AFAIK 共识。

老实说,如果嵌套上下文适用于您的用例,那么一定要去做。 重要的是您的上下文描述符即使在嵌套时也有意义,顺便说一下,这也是一个两极分化的话题,正如您在已开放半年多的 this issue 中看到的那样(截至今天)。

尽管 BetterSpecs 是一个很好的信息来源,但它在提供示例案例方面存在不足和/或对于某些人(比如我)来说不够简单。我非常喜欢 Jake Goulding's explanations 作为对这些文档的补充,您应该查看一下。

【讨论】:

  • 非常同意,赞!
【解决方案2】:

我强烈建议您查看 Better Specs 以了解更多关于在 RSpec 测试中使用 contexts 时的最佳实践。您还可以查看rspec-style-guide 以了解有关最佳做法的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多