【问题标题】:RSpec: Stubbing out calls for certain parametersRSpec:排除对某些参数的调用
【发布时间】:2010-03-09 09:54:07
【问题描述】:

我只想为某个参数生成一个方法。说我有课

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>

有没有办法将执行委托给被存根的方法?

【问题讨论】:

    标签: ruby tdd rspec bdd


    【解决方案1】:

    你可以使用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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2021-10-10
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多