RSpec.describe vs describe

时间:2014-07-14 23:05:03

标签: ruby-on-rails ruby rspec

我有一段时间以来第一次开始新的Rails项目。当脚手架模型时,Rspec创建用“RSpec”

预测的描述块
RSpec.describe MyModel do
  ...
end

vs旧式:

describe MyModel do
  ...
end

我已经仔细阅读了更改日志,但必须忽略更改的合理性?

2 个答案:

答案 0 :(得分:21)

从Rpec 3开始,您可以通过限制domain specific language (dsl)来禁用describe的全局可用性。

使用Rspec.describe进行前缀可确保在实施限制后测试仍会运行。

注意:除非您使用config.expose_dsl_globally = false

关闭可用性,否则您仍然不需要前缀

编辑指向dsl维基百科的链接

答案 1 :(得分:21)

通过提交:

  

努力将猴子补丁降到最低限度。该   默认的Rails规范生成器不应该使用猴子修补   版本describe

     

始终只使用非猴子修补RSpec.describe,而不是   检查配置,有以下好处:

     
      
  • 在Rails运行生成器时不需要加载RSpec
  •   
  • 没有引入额外的逻辑和状态来处理不同的状态
  •   
  • 解决#1048
  •   

https://github.com/rspec/rspec-rails/commit/ca0d249858903949052e06884e8e7f9d596cdc79