为什么“不要在`before`等钩子中使用`expect`”?

nil*_*s_t 6 rspec rubocop-rspec

我的问题已经通过标题得到了很好的解释。我试图用谷歌搜索,但没有找到任何令人满意的东西。rubocop-rspec不允许expectinsidebefore,为什么呢?有充分的理由避免这种用法吗?感谢您提前的解释!

Dan*_*llo 6

四阶段测试是单元测试常用的测试模式。它的一般形式是:

test do
  setup
  exercise
  verify
  teardown
end
Run Code Online (Sandbox Code Playgroud)

beforesetup是开发人员创建场景和支持数据的阶段的一部分。

expect是阶段的一部分verify,发生在it块内。

例如,常见的模式是allow在块中使用和在块中before使用。expectit

test do
  setup
  exercise
  verify
  teardown
end
Run Code Online (Sandbox Code Playgroud)

before块也可以添加到应用程序的其他层(spec_helper.rb共享示例),并且人们不希望依赖 before 块的正确顺序来使测试成功。