Ruby RSpec中的嵌套上下文块

Ruby RSpec中的嵌套上下文块,ruby,rspec,Ruby,Rspec,将上下文块嵌套在其他上下文块中似乎不好吗 例如: 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 e

将上下文块嵌套在其他上下文块中似乎不好吗

例如:

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

我强烈建议您在RSpec测试中使用
上下文
时,查看以了解更多关于最佳实践的信息。您还可以查看以了解有关最佳实践的更多信息。

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

  • 这是谷歌对几乎所有与RSpec上下文嵌套相关的内容的排名第一的结果

  • 这里唯一的另一个答案是BetterSpecs,它没有明确解决这个问题,也没有搜索功能。。。然而


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

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


    尽管BetterSpec是一个很好的信息来源,但它要么在提供示例案例方面有所欠缺,要么对某些人(比如我)来说不够简单。作为对这些文档的一种恭维,我非常喜欢,您应该查看一下。

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