【发布时间】:2014-06-23 18:31:20
【问题描述】:
我正在从 rspec 2 升级到 rspec 3,并希望使用新语法而不启用旧语法。但是我在我的顶级before(:each) 块中设置了一些存根,我有选择地unstub 我想要原始实现的地方。
当我使用新的allow 语法定义存根时,是否有一些等效的方法可以删除存根?
【问题讨论】:
我正在从 rspec 2 升级到 rspec 3,并希望使用新语法而不启用旧语法。但是我在我的顶级before(:each) 块中设置了一些存根,我有选择地unstub 我想要原始实现的地方。
当我使用新的allow 语法定义存根时,是否有一些等效的方法可以删除存根?
【问题讨论】:
你可以重新定义它们
expect(Person).to receive(:find).and_call_original
这将额外检查原始的 :find 方法是否在人身上被调用
【讨论】:
allow 重新定义。谢谢!
Person 实例位于company.boss,那么您需要调用expect(company.boss).to receive(:find).and_call_original