我有一个由第三方处理的特定模拟。我只想检查是否已返回相同的模拟。
但是,第三方调用数组方法并保存我的测试并不真正关心的方法。有没有办法告诉我的模拟它希望/ stub所有方法都用于特定的模拟实例?
例如
user = mock(User)
user.stub_all
谢谢!
编辑
有关此问题的详细信息:
测试:
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
正在测试的代码:
def create_invitation
invitation = Invitation.create
self.invitations.push(invitation)
return invitation
end
我需要嘲笑以下与我正在测试的内容没有直接关系的内容:
invitation.stub(:[]=)
invitation.stub(:save)
答案 0 :(得分:6)
答案是
user = mock(User).as_null_object
但通常这种方法意味着您的对象太大而且您的测试不够精细
答案 1 :(得分:0)
我偶然遇到了这个 - 但是这样做的“祝福”方式(现在)是使用 spy
方法,它基本上与上述相同:
参考:https://thoughtbot.com/blog/a-closer-look-at-test-spies
您不必存根该类已经实现的任何方法。