ホームページ >バックエンド開発 >Python チュートリアル >Python テスト | Python で単体テストを作成する

Python テスト | Python で単体テストを作成する

王林
王林転載
2023-04-11 19:37:151787ブラウズ

開発者またはプログラマーとして、コードを記述するときは常に、テストという見落としがあることが 1 つあります。テストは開発の一部であり、アプリケーションを厳密にテストして、必要な機能を満たしていることを確認する必要があります。

テストが必要な理由から始めましょう:

1. 手動テストの必要性を減らす

テスト ケースは事前に作成されているため、手動テストを行う本当の理由はありません。再度手動テストを行います。ほとんどの場合、特に大規模なアプリケーションでは、機能が動作するかどうかをテストするためにソフトウェアで多くのステージを実行する必要があります。これはテストによって回避できます。アプリケーションを実行するたびに特定の入力を使用する必要があることを想像してください。テストでは、これは実行されるたびに自動的に入力されます。

2. より良いコード構造を可能にする

開発前にテスト ケースを作成することがベスト プラクティスです。そのため、開発を始める前にシステム全体について考える必要があります。

3. 長期的にはより高速なテストが可能

コーディング中に関数の実装が変更される可能性がありますが、出力は同じままです。実装が変更されたときに関数を手動でテストする代わりに、複数のテスト ケースを一度に実行できる特定のテスト ケースを実装するだけで済みます。

はじめに

特定の種類のテストである単体テストに焦点を当てます。この特定の種類のテストは、関数やクラスなどの小さなコード単位をテストするために使用されます。

単体テストを作成するには、Python 標準ライブラリの Unittest を使用します。テスト ケースを作成するこの方法では、すべてのテスト ケースを含むクラスを作成することによって OOP (オブジェクト指向プログラミング) を使用します。これにより、クラス内のすべてのテスト ケースを一度に実行できるようになります。

注: 使い慣れた任意の IDE またはテキスト エディタを使用できます (デフォルトの Python IDE を使用できます)。これを行うために、Python 拡張機能を備えた Visual Studio Code の使用方法を示します。

最初に単体テスト ライブラリをインポートします:

import unittest

次に、クラス宣言を作成します:

class TestingClass(unittest.TestCase):

(unittest.TestCase) が Python で継承されることに注意してください。クラスに機能を提供します。

クラスに最初の関数を追加します。

Python テスト | Python で単体テストを作成する

self.assertEqual は、以前に継承したクラス (unittest.TestCase) によって提供されるメソッドです。このメソッドは、2 つの変数が同じ値を持つかどうかをテストします。

テスト ランナーを追加します。これにより単体テストが実行されます:

unittest.main()

完成したコードは次のようになります:

Python テスト | Python で単体テストを作成する

上記のコードは、テスト 9 が 1 と等しいことを示しています。 11まで?基本的な数学を知っていれば、9 1 = 10 であることがわかるはずです。したがって、このテスト ケースは失敗します。

出力:

Python テスト | Python で単体テストを作成する

お察しの通りです。失敗しました!

解決策は簡単です。コードを次のように変更します:

test_var = 9 + 2

Python テスト | Python で単体テストを作成する

出力:

Python テスト | Python で単体テストを作成する

##Test external function

関数の外部の場合テスト目的では、前の例は現実的ではない可能性があります。 test_var 値を関数の値に置き換えてみましょう。ファイルの先頭に関数宣言を追加します。

Python テスト | Python で単体テストを作成する#この関数は 2 つの数値を加算します。 9 2 を関数呼び出し add(9,2) に置き換えて、コードを実行します。

Python テスト | Python で単体テストを作成するこれまでのところ、テスト ケースは 1 つだけ実装しています。 TestingClass の各関数/メソッド (この場合は両方とも同じ) はテスト ケースを表します。

別のテスト ケース test_multiple_num_addition を追加しましょう。

Python テスト | Python で単体テストを作成する 注: 作成されたすべてのテスト ケースの名前の前に「test」という単語を付ける必要があります。そうしないと、テスト ランナーはそれを認識できません。

コードは次のようになります:

Python テスト | Python で単体テストを作成する

実行:

Python テスト | Python で単体テストを作成する

関数パラメータは引数を 2 つしか受け付けないため、これは明らかに失敗します。しかし、本当にさらに数値を追加したい場合はどうすればよいでしょうか?

これは、add 関数を変更することで解決できます:

Python テスト | Python で単体テストを作成する

左側に注意してください。値パラメータの横にアスタリスク (*) を付けます。これにより、複数のパラメータを入力し、値をタプルとして保存できるようになります。

#実行前のコード:

Python テスト | Python で単体テストを作成する#実行:

#実行は成功しました!Python テスト | Python で単体テストを作成する

関数パラメータの変数の前にアスタリスクを付けることを非キーワードパラメータと呼びます。

概要

テストを試みると、コードの堅牢性がさらに高まる可能性があります。開発の方法も変わる可能性があります。テストの考え方を持つことで、本番環境でのバグが減り、開発中の手動テストの繰り返しが減ります。

*元のリンク: https://medium.com/swlh/python-testing-a8156d022eef

以上がPython テスト | Python で単体テストを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。