1

特定のテストで、クラス メソッドの戻り値を変更したいと考えています。

MyClass.expects(:method).returns(:myvalue) を呼び出すことで、正しい動作を得ることができます。テストが完了したら、どうすればこの動作を停止できますか?

Mocha にはメソッドがありunstubますが、クラス メソッドではなく、インスタンス メソッドでのみ機能するようです。

4

1 に答える 1

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 ....
于 2011-03-14T21:42:21.953 に答える