如何存根特定模拟实例的所有方法

Kar*_*ran 4 rspec ruby-on-rails mocking stubbing

我有一个由第三方处理的特定模拟.我只想检查是否已返回相同的模拟.

但是,第三方调用数组方法并保存我的测试并不真正关心的方法.有没有办法告诉我的mock它希望/ stub所有方法都用于特定的模拟实例?

例如.

user = mock(User)
user.stub_all
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑

有关该问题的更多信息:

测试:

  it "creating an invitation should return invitation" do
    invitation = mock_model(Invitation)
    invitation.stub(:[]=)
    invitation.stub(:save)
    Invitation.stub(:create).and_return(invitation)
    @user.create_invitation
    @user.create_invitation.should == invitation        
  end
Run Code Online (Sandbox Code Playgroud)

正在测试的代码:

 def create_invitation
    invitation = Invitation.create
    self.invitations.push(invitation)
    return invitation
  end
Run Code Online (Sandbox Code Playgroud)

我需要模拟以下与我测试的内容没有直接关系的内容:

invitation.stub(:[]=)
invitation.stub(:save)
Run Code Online (Sandbox Code Playgroud)

Gar*_*eth 6

答案是

user = mock(User).as_null_object
Run Code Online (Sandbox Code Playgroud)

但一般来说,这种方法意味着您的对象太大而且您的测试不够精细