RubyMine 无法识别“it_behaves_like”方法
RubyMine doesn't recognize `it_behaves_like` method
当我打开像 it_behaves_like
这样的规范时,RubyMine 无法识别方法并显示错误消息 can't find 'it_behaves_like'
。
RSpec 测试本身工作正常,所以不知何故 RubyMine 找不到方法。
在首选项中列出 rspec-rails
。
如何找到问题所在?
编辑
似乎RubyMine
无法识别动态定义的方法。
是的,RubyMine,即使是最新版本也无法识别这些生成的方法。不过,您可以选择 "tricking" RubyMine 来识别它。只需将以下空方法添加到 spec_helper.rb:
的末尾
def it_behaves_like(*args) ; end
这将使 RubyMine 看到一个具有正确签名的方法,但它仍会被 rspec 覆盖,因此它不会影响您的测试。
更好的是,您可以将它放在 spec_helper.rb 的要求中,例如rubymine_signatures.rb
require 'rubymine_signatures'
但是,无论它放在哪里,它仍然会污染您的代码库 'fix' IDE,我不建议这样做。虽然只是为了测试,但还是可以防御的。
当我打开像 it_behaves_like
这样的规范时,RubyMine 无法识别方法并显示错误消息 can't find 'it_behaves_like'
。
RSpec 测试本身工作正常,所以不知何故 RubyMine 找不到方法。
在首选项中列出 rspec-rails
。
如何找到问题所在?
编辑
似乎RubyMine
无法识别动态定义的方法。
是的,RubyMine,即使是最新版本也无法识别这些生成的方法。不过,您可以选择 "tricking" RubyMine 来识别它。只需将以下空方法添加到 spec_helper.rb:
的末尾def it_behaves_like(*args) ; end
这将使 RubyMine 看到一个具有正确签名的方法,但它仍会被 rspec 覆盖,因此它不会影响您的测试。
更好的是,您可以将它放在 spec_helper.rb 的要求中,例如rubymine_signatures.rb
require 'rubymine_signatures'
但是,无论它放在哪里,它仍然会污染您的代码库 'fix' IDE,我不建议这样做。虽然只是为了测试,但还是可以防御的。