提示或推断RSpec的返回类型let()实现FactoryGirl create()

时间:2017-07-28 14:50:17

标签: ruby rspec factory-bot rubymine yard

使用RubyMine,在rspec测试中,有没有办法让RubyMine知道所创建对象的类型(用于自动完成和'无法找到'警告抑制?

例如:

# @yieldreturn [Tibbees::Tibbee]
let!(:tibbee) {
  create(:tibbee,
         canonical_vendible: article_vendible,
         owner: tibbee_user)
}

RubyMine似乎没有认识到@yieldreturn(我不确定这是否正确)并且我对@type和@return没有运气。

let!(:tibbee) { create(...) || Tibbees::Tibbee.new } 

cludge工作,但是yuk。任何建议都非常感谢。也许还有一种让工厂能够照顾它的方法,但这似乎太深了。一个抽象可能被RubyMine拿起来?

1 个答案:

答案 0 :(得分:0)

不是一个直接的解决方案,但是:

虽然谷歌就此而言,我遇到了https://github.com/JetBrains/ruby-type-inference,它对未来抱有很大希望,这可能与对这个问题感兴趣的任何人都有关。

来自自述文件:

  

ruby​​-type-in​​ference项目是一种全新的方法,通过提供更可靠的符号解析和类型推断来解决Ruby动态性问题。

在回答我问过的一些问题时:

  

我们将在2017.3版本中使该插件正常工作并公开发布,但它肯定会处于“测试阶段”,因为即使在理论方面,有几个问题尚待解决。为了使一切正常工作,我们必须在IDE方面重新设计我们的类型系统,这很可能不会在2017年完成。

     

它可能会在当下运行,但是......结果更具实验价值...... [并且]每天都很难使用它。