RSpec中的嵌套上下文块

Gra*_*son 16 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
      end
    end
    etc...
  end
end
Run Code Online (Sandbox Code Playgroud)

Car*_*cía 17

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

  1. 这是与RSpec上下文嵌套相关的几乎所有内容的Google最高结果.

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


CAN在RSpec的巢环境,他们会工作.问题在于它是一个有点两极分化的话题,有些人宁愿远离它.有些人会告诉你这是一个很好的做法,其他人会告诉你这不是...... AFAIK 没有真正的共识.

老实说,如果嵌套上下文适用于您的用例,请务必去做.重要的是你的上下文描述符即使在嵌套时也是有意义的,顺便说一下,这也是一个两极分化的主题,你可以在这个问题中看到它已经开放了半年多(截至今天).

虽然BetterSpecs是一个很好的信息来源,但它在提供示例案例方面不尽如人意和/或对于某些人(如我)而言并不愚蠢.我喜欢Jake Goulding的解释是对这些文档的一种恭维,你应该看一下.


K M*_*lam 6

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