Ruby on rails rspec3-stuba类方法
我正在从rspec 2.99升级到rspec 3.0.3,并已将实例方法转换为使用Ruby on rails rspec3-stuba类方法,ruby-on-rails,ruby,rspec,rspec3,Ruby On Rails,Ruby,Rspec,Rspec3,我正在从rspec 2.99升级到rspec 3.0.3,并已将实例方法转换为使用允许的任何实例,但尚未找到如何存根类方法。我有这样的代码: module MyMod class Utils def self.find_x(myarg) # Stuff end end end 我的rspec 2测试是这样做的: MyMod::Utils.stub(:find_x).and_return({something: 'testing'}) Rspec 3是如何做
允许的任何实例,但尚未找到如何存根类方法。我有这样的代码:
module MyMod
class Utils
def self.find_x(myarg)
# Stuff
end
end
end
我的rspec 2测试是这样做的:
MyMod::Utils.stub(:find_x).and_return({something: 'testing'})
Rspec 3是如何做到这一点的?您应该这样做
allow(MyMod::Utils).to receive(:find_x).and_return({something: 'testing'})
查看文档。我正试图实现这一点,但当我编写模拟,然后编写expect(Class.foo)。为了eq(bar)
我得到了一个“错误的参数数错误”,因为foo
方法通常需要两个参数……但我只想让它返回我在stubFWIW中输入的内容,这个表单会使我的ruby解释器崩溃。但是,并不是严格需要返回,可以不返回。(我的ruby解释器也不会崩溃。)@sixty4bit有什么原因不能用参数调用它吗?@sixty4bitexpect(Class.foo).to receive(bar).with(arg1,arg2)。and_return({..object})