我已经看到使用较旧的should_receive
语法完成此操作,但我无法弄清楚如何在Rspec 3中存根Rails模块方法。
我试过这些:
OptionsHelper.stubs(:method).returns("something")
allow(OptionsHelper).to receive(:method).and_return "something"
allow_any_instance_of(ActionView::Base).to receive(:render_quick_help).and_return 'something'
但实际上没有一个方法存在。
答案 0 :(得分:1)
allow_any_instance_of(ActionView::Base)
意味着它会期望该类的实例,而不是从它继承的类接收:method。
ActionView :: Base也是一个类,ActionView ::是一个模块。
此外,模块无法实例化,因此理论上allow_any_instance_of(ActionView).to ...将无效。
我知道这不是解决方案,但应该指出正确的方向。