\

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回呼ばれたことを確認する方法について説明しました。これらのテクニックを使用することで、コードの挙動をより詳細にテストすることが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です