Ruby on rails rspec3-stuba类方法

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是如何做

我正在从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是如何做到这一点的?

您应该这样做

allow(MyMod::Utils).to receive(:find_x).and_return({something: 'testing'})

查看文档。

我正试图实现这一点,但当我编写模拟,然后编写
expect(Class.foo)。为了eq(bar)
我得到了一个“错误的参数数错误”,因为
foo
方法通常需要两个参数……但我只想让它返回我在stubFWIW中输入的内容,这个表单会使我的ruby解释器崩溃。但是,并不是严格需要返回,可以不返回。(我的ruby解释器也不会崩溃。)@sixty4bit有什么原因不能用参数调用它吗?@sixty4bit
expect(Class.foo).to receive(bar).with(arg1,arg2)。and_return({..object})