我有一段时间以来第一次开始新的Rails项目。当脚手架模型时,Rspec创建用“RSpec”
预测的描述块RSpec.describe MyModel do
...
end
vs旧式:
describe MyModel do
...
end
我已经仔细阅读了更改日志,但必须忽略更改的合理性?
答案 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