RubyMine不识别`it_behaves_like`方法

时间:2015-06-18 08:29:48

标签: ruby-on-rails rubymine

当我打开类似it_behaves_like方法的规范时,RubyMine无法识别错误消息can't find 'it_behaves_like'

RSpec测试本身工作正常,因此RubyMine无法找到该方法。

列出了首选项rspec-railsenter image description here

如何找到问题所在?

修改

似乎RubyMine无法识别动态定义的方法。

https://youtrack.jetbrains.com/issue/RUBY-13950

1 个答案:

答案 0 :(得分:3)

是的,RubyMine,即使是最新版本也存在识别这些生成方法的问题。您可以选择"欺骗" RubyMine虽然认识到了它。只需将以下空方法添加到spec_helper.rb的末尾:

def it_behaves_like(*args) ; end

这将使RubyMine看到具有正确签名的方法,但它仍将被rspec覆盖,因此它不会影响您的测试。

更好的是,你可以将它放在spec_helper.rb的require中,例如: rubymine_signatures.rb

require 'rubymine_signatures'

无论放置在何处,它仍会污染您的代码库以“修复”#39; IDE,我不建议这样做。因为它仅用于测试,所以可以进行辩护。