问题有点奇怪,但我想要的是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"}
用于存根辅助方法的正确语法是什么?
我使用的宝石:
Ruby版本2.1.0
答案 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')