我想只为某个参数存根方法。说我有一个班级
class Foo
def bar(i)
i*2
end
end
现在我想只为值为3的调用存根方法栏,并在所有其他情况下返回方法返回值:
>> foo = Foo.new
>> foo.bar(2)
=> 4
>> foo.stub!(:bar).with(3).and_return(:borked)
>> foo.bar(3)
=> :borked
>> foo.bar(2)
NoMethodError: undefined method `bar' for #<Foo:0x10538e360>
有没有办法将执行委托给被删除的方法?
答案 0 :(得分:2)
您可以使用unstub!
方法
>> foo = Foo.new
>> foo.bar(2)
=> 4
>> foo.stub!(:bar).with(3).and_return(:borked)
>> foo.bar(3)
=> :borked
>> foo.unstub!(:bar)
>> foo.bar(2)
NoMethodError: undefined method `bar' for #<Foo:0x10538e360>