特定のテストで、クラス メソッドの戻り値を変更したいと考えています。
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 ....