Pythonのunittestでユーザー入力を扱う方法について説明します。unittestはPythonの標準ライブラリで、ユニットテストを行うためのフレームワークです。ユーザー入力を含む関数のテストを行う場合、unittest.mockモジュールを使用してinput関数をモック化することが一般的です。
input関数のモック化
以下に、input関数をモック化する基本的なテストコードの例を示します。
from unittest.mock import patch
@patch('yourmodule.input')
def test(mock_input):
mock_input.return_value = 100 # テスト用の入力値を設定
# ここにテストを書く
このコードでは、@patch('yourmodule.input')
デコレータを使用してinput関数をモック化しています。モック化されたinput関数は、mock_input.return_value
で指定した値を返すようになります。
ループや条件分岐を含むユーザー入力のテスト
ループや条件分岐を含むユーザー入力のテストを行う場合、モックオブジェクトのside_effect
属性を使用して、複数の入力値を順番に返すように設定できます。
from unittest.mock import patch
@patch('yourmodule.input')
def test(mock_input):
mock_input.side_effect = ['Y', 'N'] # テスト用の入力値を順番に設定
# ここにテストを書く
このコードでは、mock_input.side_effect = ['Y', 'N']
と設定することで、最初のinput関数の呼び出しでは’Y’を、次の呼び出しでは’N’を返すようになります。
以上がPythonのunittestでユーザー入力を扱う基本的な方法です。これらのテクニックを活用して、ユーザー入力を含む関数のテストを効率的に行うことができます。