6

mock.Mock()オブジェクトを作成しsession、インスタンス メソッドのように機能するメソッドを追加して、モック オブジェクトへの参照を渡し、selfメソッドが状態をモック オブジェクトに追加できるようにしたいと考えています。types.MethodTypeこれは可能ですか (たとえば、モックの組み込み API を使用して手動で使用せずに)、またはそれを回避する方法を見つける必要がありますか?

これはRuby用で、同じではないにしても、似たようなものをカバーしているようです残念ながら、私は Ruby についてよく知りません。

4

2 に答える 2

4

クラスの機能を強化したい場合は、mock.MockサブクラスMock化して独自のメソッドを追加してください。

class MyMock(Mock):
    def session(self):
        # Save session data here?

モックのドキュメントでは、新しいモックが作成される場合、それは親と同じ型になると説明されています。これは、sessionモック中に作成された他のモックでも関数が使用できることを意味します。

sessionこれは、関数を既存のモック オブジェクトに動的にアタッチする必要がある場合には対応していません。

于 2013-01-21T01:03:41.313 に答える
3
mock_answer = Mock()

def session():
    mock_answer.b = 1

mock_answer.session = session
mock_answer.session()
print(mock_answer.b)  # 1

self実際には必要ありません。

于 2016-01-08T02:58:51.143 に答える