開発者またはプログラマーとして、コードを記述するときは常に、テストという見落としがあることが 1 つあります。テストは開発の一部であり、アプリケーションを厳密にテストして、必要な機能を満たしていることを確認する必要があります。
テスト ケースは事前に作成されているため、手動テストを行う本当の理由はありません。再度手動テストを行います。ほとんどの場合、特に大規模なアプリケーションでは、機能が動作するかどうかをテストするためにソフトウェアで多くのステージを実行する必要があります。これはテストによって回避できます。アプリケーションを実行するたびに特定の入力を使用する必要があることを想像してください。テストでは、これは実行されるたびに自動的に入力されます。
開発前にテスト ケースを作成することがベスト プラクティスです。そのため、開発を始める前にシステム全体について考える必要があります。
コーディング中に関数の実装が変更される可能性がありますが、出力は同じままです。実装が変更されたときに関数を手動でテストする代わりに、複数のテスト ケースを一度に実行できる特定のテスト ケースを実装するだけで済みます。
特定の種類のテストである単体テストに焦点を当てます。この特定の種類のテストは、関数やクラスなどの小さなコード単位をテストするために使用されます。
単体テストを作成するには、Python 標準ライブラリの Unittest を使用します。テスト ケースを作成するこの方法では、すべてのテスト ケースを含むクラスを作成することによって OOP (オブジェクト指向プログラミング) を使用します。これにより、クラス内のすべてのテスト ケースを一度に実行できるようになります。
注: 使い慣れた任意の IDE またはテキスト エディタを使用できます (デフォルトの Python IDE を使用できます)。これを行うために、Python 拡張機能を備えた Visual Studio Code の使用方法を示します。
最初に単体テスト ライブラリをインポートします:
import unittest
次に、クラス宣言を作成します:
class TestingClass(unittest.TestCase):
(unittest.TestCase) が Python で継承されることに注意してください。クラスに機能を提供します。
クラスに最初の関数を追加します。
self.assertEqual は、以前に継承したクラス (unittest.TestCase) によって提供されるメソッドです。このメソッドは、2 つの変数が同じ値を持つかどうかをテストします。
テスト ランナーを追加します。これにより単体テストが実行されます:
unittest.main()
完成したコードは次のようになります:
上記のコードは、テスト 9 が 1 と等しいことを示しています。 11まで?基本的な数学を知っていれば、9 1 = 10 であることがわかるはずです。したがって、このテスト ケースは失敗します。
出力:
お察しの通りです。失敗しました!
解決策は簡単です。コードを次のように変更します:
test_var = 9 + 2
出力:
##Test external function関数の外部の場合テスト目的では、前の例は現実的ではない可能性があります。 test_var 値を関数の値に置き換えてみましょう。ファイルの先頭に関数宣言を追加します。#この関数は 2 つの数値を加算します。 9 2 を関数呼び出し add(9,2) に置き換えて、コードを実行します。
これまでのところ、テスト ケースは 1 つだけ実装しています。 TestingClass の各関数/メソッド (この場合は両方とも同じ) はテスト ケースを表します。
別のテスト ケース test_multiple_num_addition を追加しましょう。
注: 作成されたすべてのテスト ケースの名前の前に「test」という単語を付ける必要があります。そうしないと、テスト ランナーはそれを認識できません。
コードは次のようになります:
実行:
関数パラメータは引数を 2 つしか受け付けないため、これは明らかに失敗します。しかし、本当にさらに数値を追加したい場合はどうすればよいでしょうか?
これは、add 関数を変更することで解決できます:
左側に注意してください。値パラメータの横にアスタリスク (*) を付けます。これにより、複数のパラメータを入力し、値をタプルとして保存できるようになります。
#実行前のコード:#実行:
#実行は成功しました!
関数パラメータの変数の前にアスタリスクを付けることを非キーワードパラメータと呼びます。 概要 テストを試みると、コードの堅牢性がさらに高まる可能性があります。開発の方法も変わる可能性があります。テストの考え方を持つことで、本番環境でのバグが減り、開発中の手動テストの繰り返しが減ります。 *元のリンク: https://medium.com/swlh/python-testing-a8156d022eef以上がPython テスト | Python で単体テストを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。