0

我只是想运行一些测试,我得到了这个错误:

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 时才会发生这种情况。

它在改革使用的 Disposable gem 中定义。起初我认为问题出在旧版本的 rspec 上,但即使我更新到最新版本,问题仍然存在。阅读代码或文档并没有让我了解测试和应用程序运行之间不同的任何特定加载行为。

我使用的 gems 版本是:rspec-3.3.0、reform-2.2.3、disposable-0.3.2

有人有线索吗?

- 更新 -

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

4

1 回答 1

0

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

于 2017-01-26T11:35:09.120 回答