RSpec:对某些参数的调用进行调用

时间:2010-03-09 09:54:08

标签: ruby tdd rspec bdd

我想只为某个参数存根方法。说我有一个班级

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>

有没有办法将执行委托给被删除的方法?

1 个答案:

答案 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>