对于特定测试,我想更改类方法的返回值。
我可以通过调用 MyClass.expects(:method).returns(:myvalue) 来获得正确的行为。完成测试后如何停止这种行为?
Mocha 中有一个unstub
方法,但它似乎只适用于实例方法,而不适用于类方法。
对于特定测试,我想更改类方法的返回值。
我可以通过调用 MyClass.expects(:method).returns(:myvalue) 来获得正确的行为。完成测试后如何停止这种行为?
Mocha 中有一个unstub
方法,但它似乎只适用于实例方法,而不适用于类方法。
你用的是什么版本的摩卡?
这适用于 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 ....