unittestによるテストの作成
メニューを表示するにはスワイプしてください
コードが期待通りに動作することを確認するには、自動テストの作成が不可欠です。Python の unittest モジュールは、テストの作成と整理を簡単に行える組み込みフレームワークです。テストケースは unittest.TestCase を継承したクラスを作成し、その中に test_ で始まるメソッドを定義します。各メソッドはコードの特定の側面を検証します。
テストスイートは、複数のテストケースをまとめて実行できるコレクションです。デフォルトでは、unittest は test_ クラス内のすべての TestCase メソッドを自動的に検出して実行します。期待される結果が得られるかどうかを確認するために、assertEqual、assertTrue、assertFalse、assertRaises などのアサーションメソッドを使用します。これらのアサーションメソッドは、実際の結果と期待される結果を比較し、一致しない場合は失敗を報告します。
テストを実行するには、コマンドラインを使用するか、テストファイルの末尾で unittest.main() を呼び出します。
assertRaises は、assertEqual や assertTrue など他のアサーションメソッドとは異なるパターンに従います。最終的な値を検証するのではなく、with 文を使ってコンテキストマネージャとして動作し、保護された領域を作成します。これにより、テスト中にコードの実行を監視し、想定されるエラーを「捕捉」できます。
1234567891011121314151617181920212223import unittest def add(a, b): return a + b def divide(a, b): return a / b class TestMathFunctions(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_divide_normal(self): self.assertAlmostEqual(divide(10, 2), 5.0) def test_divide_by_zero(self): with self.assertRaises(ZeroDivisionError): divide(10, 0) unittest.main(argv=['first-arg-is-ignored'], exit=False)
この章で使用されている関数 unittest.main() には、この学習環境専用の追加パラメータがいくつか含まれています。これらはプラットフォーム上でコードを正しく実行するためのものであり、今学ぶべきPythonの基本概念には含まれていません。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください