问题有点奇怪,但我想要的是存根的替代品!在Rspec中,不会产生弃用警告.
场景:
我用stub!在我的帮助器规范中存根某些辅助方法.
例如
stub!(:t_with_partner_lookup).and_return("test")
Rspec建议使用没有感叹号的存根.
所以我写(如建议):
stub(:t_with_partner_lookup).and_return("test")
但是这会产生错误:
Stub :t_with_partner_lookup received unexpected message :and_return with ("test")
在我发现的另一个问题中,我不得不使用帮助器.字首.我做了,但它没有删除弃用警告,而是产生了错误.
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
解决方法
通过使用allow语法解决了它:
allow(self).to receive(:t_with_partner_lookup).and_return("test")