Pythonのユニットテストで、特定の関数が2回呼ばれたことを確認する方法について説明します。この記事では、unittest.mock
モジュールを使用します。
関数が2回呼ばれたことを確認する
unittest.mock
モジュールのcall_count
属性を使用して、モックオブジェクトが何回呼ばれたかを確認できます。
from unittest.mock import MagicMock, patch
def test_func():
mock = MagicMock()
with patch('module_to_test.func_to_mock', mock):
module_to_test.func_to_test()
assert mock.call_count == 2
このコードでは、func_to_mock
が2回呼ばれたことを確認しています。
関数が特定の引数で2回呼ばれたことを確認する
unittest.mock
モジュールのassert_has_calls
メソッドを使用して、モックオブジェクトが特定の引数で何回呼ばれたかを確認できます。
from unittest.mock import MagicMock, patch, call
def test_func():
mock = MagicMock()
with patch('module_to_test.func_to_mock', mock):
module_to_test.func_to_test()
calls = [call('expected_arg1'), call('expected_arg2')]
mock.assert_has_calls(calls)
このコードでは、func_to_mock
が'expected_arg1'
と'expected_arg2'
という引数で呼ばれたことを確認しています。
以上、Pythonのユニットテストで関数が2回呼ばれたことを確認する方法について説明しました。これらのテクニックを使用することで、コードの挙動をより詳細にテストすることが可能になります。