Pythonのunittestモジュールを使用して、モックオブジェクトのメソッドが呼び出されたときの引数を取得する方法について説明します。
メソッドが呼び出された回数を検証する
モックオブジェクトのメソッドが呼び出された回数を検証するには、call_count
属性を使用します。以下に例を示します。
# set_complex()が呼ばれたか
assert mock_lib.set_complex.called is True
# set_complex()が1回でも呼ばれたか
mock_lib.set_complex.assert_called()
# set_complex()を呼んだ回数は4回か
assert mock_lib.set_complex.call_count == 4
メソッドが呼び出されたときの引数を検証する
モックオブジェクトのメソッドが呼び出されたときの引数を検証するには、call_args
属性を使用します。以下に例を示します。
# call_argsの例
## 引数が1個の場合
args, kwargs = mock_lib.set_complex.call_args
assert args[0] == 'egg'
assert kwargs == {}
## 引数が複数の場合
multi_args, multi_kwargs = mock_lib.set_complex_dict.call_args
assert multi_args[0] == 'hoge'
assert multi_args[1] == {'fuga': 'piyo', 'くだもの': 'りんご'}
assert multi_kwargs == {}
以上がPythonのunittestでモックオブジェクトのメソッドが呼び出されたときの引数を取得する方法です。これらのテクニックを使用することで、ユニットテストの精度を向上させることができます。