在Mocha中取消一个类方法

时间:2011-03-14 21:24:03

标签: ruby mocking stub mocha

对于特定测试,我想更改类方法的返回值。

我可以通过调用MyClass.expects(:method).returns(:myvalue)来获得正确的行为。完成测试后,如何停止这种行为?

Mocha中有一个unstub方法,但它似乎只适用于实例方法,而不适用于类方法。

1 个答案:

答案 0 :(得分:1)

您使用的是什么版本的摩卡?

这适用于MRI / mocha 0.9.12:

class T
  def self.hello
    "hi"
  end
end

T.hello # => "hi"
T.expects(:hello).returns("hello")
T.hello # => "hello"
T.unstub(:hello)
T.hello # => "hi"
T.expects(:hi).returns("world")
T.hi    # => "world"
T.unstub(:hi)
T.hi    # => NoMethodError: undefined method ....