在Rails中有这个模型:
class User < ActiveRecord::Base
def self.create_auth_from_hash(hash)
# stuff
end
end
我想存根create_from_auth_hash
方法,以便隔离控制器行为。显然,目前的语法是:
expect_any_instance_of(User).to receive(:create_from_auth_hash).and_return(false)
但即使我没有错误,仍然会调用模型方法。
如何存根模型方法?我正在使用Rails 4.1和RSpec 3.0。
答案 0 :(得分:1)
您的期望设置为在User
的任何实例上存根方法,而不是您在User
上定义的类方法。
为此,您只需将User
作为参数传递给expect
,而不是实例。像这样:
expect(User).to receive(:create_from_auth_hash).and_return(false)