如何删除“DEPRECATION:stub! 已弃用。 改为使用存根。“消息?

问题有点奇怪,但我想要的是stub!的替代品stub! 在Rspec中,不会产生弃用警告。

场景:

我用stub! 在我的帮助器规范中存根某些辅助方法。

例如

 stub!(:t_with_partner_lookup).and_return("test") 

Rspec比建议使用没有感叹号的stub

所以我写(如建议):

 stub(:t_with_partner_lookup).and_return("test") 

但是这会产生错误:

 Stub :t_with_partner_lookup received unexpected message :and_return with ("test") 

在我发现的另一个问题中,我不得不使用helper. 字首。 我做了,但它没有删除弃用警告,而是产生了错误。

 helper.stub(:t_with_partner_lookup).and_return("test") 

生产:

 undefined method `t_with_partner_lookup' for # 

我也尝试了这种语法但产生了与上面提到的相同的错误:

 helper.stub(:t_with_partner_lookup){"test"} 

存根辅助方法的正确语法是什么?

我使用的gem

  • 铁轨3.2.17
  • 最新版本的rspec-rails

Ruby版本2.1.0

通过使用allow语法解决了它:

 allow(self).to receive(:t_with_partner_lookup).and_return("test") 

我可以建议你试试

 helper = Object.new.extend SomeHelper helper.stub(:t_with_partner_lookup).and_return('test')