モックライブラリを使用しているときに、my_mock.reset_mock()
メソッドを呼び出すとMock
、my_mock
. どうやら私はどういうわけかマスキングMock.reset_mock()
していますが、これがどのように起こったのかわかりません。
サンプル実行 (Python 2.7):
>>> mocks.normal_mock.mock_calls
Out[6]: []
>>> mocks.normal_mock.reset_mock()
>>> mocks.normal_mock.mock_calls
Out[8]: []
>>> mocks.abnormal_mock.mock_calls
Out[2]: []
>>> mocks.abnormal_mock.reset_mock()
>>> <MagicMock name='abnormal_mock.reset_mock()' id='157604104'>
>>> mocks.abnormal_mock.mock_calls
Out[4]: [call.reset_mock()]
何がこれを引き起こす可能性がありますか?
追加情報:
- すべてのモックは指定されたクラスにカプセル化され、一度インスタンス化され、テストの間にリセットされ
unittest.TestCase.tearDown()
ます。 - すべてのモックは
patch.start()
、パッチが適用されたオブジェクト/メソッド/モジュールを呼び出して作成されます - 私の例の正常なモックと異常なモックの両方が、UUT によってインポートされたモジュールをモックアウトします (それぞれ異なるモジュール)