如何删除“DEPRECATION:stub!已弃用。请改用stub。”信息?

时间:2014-03-13 08:32:50

标签: ruby-on-rails ruby rspec

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

情景:

我使用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 #<RSpec::Core::ExampleGroup::Nested_1::Nested_3:0x00000103256d50>

我也尝试过这种语法,但会产生与上述相同的错误:

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

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

我使用的宝石

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

Ruby版本2.1.0

2 个答案:

答案 0 :(得分:10)

使用allow语法解决它:

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

答案 1 :(得分:1)

我可以建议你试试

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