Pythonのunittestモジュールを使用してユーザー入力をテストする方法について説明します。この記事では、ユーザー入力を模倣(モック)するためのテクニックと、そのテクニックを使用してユーザー入力を含む関数のテストを書く方法について説明します。
ユーザー入力のモック
Pythonのunittestモジュールには、unittest.mock.patch
という便利な機能があります。これを使用すると、ユーザー入力を模倣(モック)することができます。
以下に、input
関数をモックする基本的なテストケースの例を示します。
import unittest
from unittest.mock import patch
def function_with_input():
return input("Enter something:")
class TestMyFunction(unittest.TestCase):
@patch('builtins.input', return_value='mocked_value')
def test_function_with_input(self, input):
self.assertEqual(function_with_input(), 'mocked_value')
if __name__ == '__main__':
unittest.main()
このテストケースでは、unittest.mock.patch
デコレータを使用してbuiltins.input
関数をモックしています。モックされたinput
関数は常に'mocked_value'
を返します。そのため、function_with_input
関数が呼び出されると、ユーザー入力の代わりに'mocked_value'
が返され、その結果がテストで確認されます。
まとめ
Pythonのunittestモジュールを使用すれば、ユーザー入力を含む関数のテストを簡単に書くことができます。unittest.mock.patch
を使用して関数をモックすることで、テスト中にユーザー入力を制御することが可能になります。これにより、ユーザー入力を必要とするコードのテストが容易になります。