Pythonのunittest.mock
ライブラリは、テスト中にシステムの一部をモックオブジェクトに置き換えて、それらがどのように使用されたかについてアサーションを行うことができます。
Mockクラス
unittest.mock
は、テストスイート全体でスタブを作成する必要性を排除するためのコアMock
クラスを提供します。アクションを実行した後、どのメソッド/属性がどの引数で使用されたかについてアサーションを行うことができます。
assert_called_withメソッド
assert_called_with
メソッドは、モックが特定の引数で呼び出されたことを確認するための便利な方法です。以下に例を示します。
from unittest.mock import MagicMock
thing = ProductionClass()
thing.method = MagicMock(return_value=3)
thing.method(3, 4, 5, key='value')
thing.method.assert_called_with(3, 4, 5, key='value')
この例では、thing.method
が(3, 4, 5, key='value')
という引数で呼び出されたことを確認しています。
まとめ
Pythonのunittest.mock
ライブラリは、テスト中にシステムの一部をモックオブジェクトに置き換え、それらがどのように使用されたかについてアサーションを行う強力なツールです。assert_called_with
メソッドを使用すると、モックが特定の引数で呼び出されたことを確認することができます。