Fails to run Rspec due to Reform error: "undefined method `feature' for Reform::Form:Class (NoMethodError)"

Fails to run Rspec due to Reform error: "undefined method `feature' for Reform::Form:Class (NoMethodError)"

我正在尝试 运行 一些测试,但我收到了这个错误:

undefined method `feature' for Reform::Form:Class (NoMethodError)

它发生在 /usr/local/bundle/gems/reform-2.2.3/lib/reform/form.rb:75, form.rb 中的那一行是第一次使用 DSL 词 feature。 当然,当我 运行 我的 rails 应用程序时不会发生这种情况,但只有当我 运行 rspec..

在reform使用的Disposablegem中定义。起初我以为问题出在 rspec 的旧版本上,但即使我更新到最新版本后,问题仍然存在。阅读代码或文档并没有让我发现任何特定的加载行为在测试和应用程序之间是不同的运行s。

我使用的gem版本是: rspec-3.3.0,改革-2.2.3,一次性-0.3.2

有人知道吗?

-- 更新--

删除整个测试框架(删除 RSpec 并删除所有相关文件)并再次安装后,我发现 RSpec 本身就是 运行ning 但在尝试时在测试文件中加载我的环境,它因同样的错误而失败。

好吧,问题是我们添加了对改革契约的覆盖并且没有做得太优雅,因此不需要原始改革契约所需的所有东西。作为修复,我们现在创建了一个基础 从 Reform::Contract 继承而不是覆盖它的合同现在一切正常。我们在 运行 RSpec 而不是 运行 Rails c 中找到它的唯一原因是因为加载顺序不同。