書き込みテストは、プログラマーがコードベースをテストするために作成する論理プログラムです。開発中、QA は、製品をユーザーに出荷する前に、アプリの改善が必要な点を強調するプロセスを理解する必要があります。この目的のために、2 つの数値を合計して結果を返す関数を作成しましょう。
まず、このチュートリアルでテストを作成するためのすべてのファイルを含むフォルダーを作成します。 main.py
という名前のファイルを追加して、この新しいフォルダーに関数を書き込みます。
# main.py # Add the sum of two numbers def add_sum(num1, num2): return int(num1) + int(num2)
上記のコード ブロックができたので、ユーザーが入力プロンプトを介して目的の値を入力できるようにする関数を記述して、コードが機能することを確認しましょう。関数add_sum()
は 2 つの数値をパラメーターとして取り、演算子+記号を使用して値を返し、合計を取得します。別のファイルresult.py
に、次のコードをコピーして貼り付けます。
# result.py from main import add_sum print("Please enter the two values\n") num1 = int(input("Please enter the first number: \n")) num2 = int(input("Please enter the second number: \n")) total = add_sum(num1, num2) print(f"The sum of the values is {total}")
main.py
add_sum()
をインポートしますint
メソッドを使用して、入力プロンプト値を整数に変換しました
add_sum()
関数のすべてのテスト ケースを記述するためのテスト ファイルを作成する前に、 main.py
を更新しましょう。次のコードをコピーして貼り付けます。
# main.py def add_sum(num1, num2): try: return int(num1) + int(num2) except ValueError as err: return err
コード ブロックは、コード内の例外を処理するtry/except
ステートメントを使用して、except ブロックにエラーがある場合に警告します。プログラミングのこの方法は、エラーをキャッチするのに役立ち、エラーが発生した特定の行番号を示します。
# test.py import unittest from main import add_sum class MainTest(unittest.TestCase): def test_do_stuff(self): result = add_sum(5, 10) self.assertEqual(result, 15) if __name__ == '__main__': unittest.main()
上記のコード ブロックに示すように、次の処理が行われます。
test.py が自動的に実行されるため、すべてのメソッドを「test_」で開始することを忘れないでください。 **
**
Ran 1 test in 0.000s OK
同じファイルtest.py
で、コードを変更して以下を貼り付けましょう。
# test.py import unittest from main import add_sum class MainTest(unittest.TestCase): # other test def test_do_stuff2(self): result = add_sum("hulu", 5) self.assertEqual(result, 5) if __name__ == '__main__': unittest.main()
FAIL: test_do_stuff2 (__main__.MainTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test.py", line 11, in test_do_stuff3 self.assertEqual(result, 5) AssertionError: ValueError("invalid literal for int() with base 10: 'hulu'") != 5
python3 -m unittest
また、テストの詳細を取得するには、フラグ-v (verbose) を指定してコマンドを使用します。これにより、正常なテストと失敗したテストが表示されます。
python3 -m unittest -v
test_do_stuff (test.MainTest) ... ok test_do_stuff2 (test.MainTest) ... ok ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK