Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonユニットテストとは何ですか?


ユニットテストとは何ですか?

単体テストは、システムの個々のコンポーネントがテストされるソフトウェアテストの一種です。ユニットテストは、開発者にとって重要なプラクティスです。これにより、ソフトウェアのすべてのコンポーネントが期待どおりに適切に機能するようになります。単体テストは、主にソフトウェア開発のコーディング段階で開発者によって実行されます。

単体テストを使用すると、開発者はシステムまたはソフトウェアのどの特定のコンポーネントに問題があるかを知ることができ、開発者はその特定のユニットを修正できるため、問題を簡単に修正できます。

Pythonユニットテスト

Pythonには、 unittestというパッケージが組み込まれています。 これは、ユニットテストを実行するために使用されます。単体テストは、開発者がコードが失敗する可能性のあるケースを予測し、コードがそれらのケースに対してテストされるため、コードを将来にわたって保証します。ただし、特定のケースを見逃す可能性がありますが、それでも大部分のケースは対処され、コードはそれらのケースに対してテストされます。

unittestモジュールは、次のようにPythonプログラムにこのモジュールをインポートすることで使用できます。

import unittest

正方形の面積を計算する単純な関数があるとします。このファイルを「area.py」という名前で保存します。

def area(a):
   return (a+a)

次に、上記の関数の単体テストコードを記述します。これにより、関数が期待どおりの出力を提供するかどうかがわかります。ユニットテストコードファイルを「unit_test.py」という名前で保存します。

unit_test.py &mnus;

from area import *
import unittest

class Testarea(unittest.TestCase):
   def test_area(self):
      self.assertAlmostEqual(area(5),25)
      self.assertAlmostEqual(area(3),9)
      self.assertAlmostEqual(area(4),16)

ここでは、テストするコードを含むファイルがインポートされます。 unittestメソッドassertAlmostEqual() 使用されている。これは、何らかの入力を使用してarea関数を呼び出し、2番目のパラメーターには、関数によって返される期待される出力が含まれます。 area()によって返される出力が期待される出力と等しい場合、テストは合格です。それ以外の場合は失敗します。

次に、コマンドプロンプトからunit_test.pyを実行して、area()コードがテストに合格するかどうかを確認します。

コマンドプロンプトから次のコマンドを実行して、unit_testファイルを実行します。

python -m unittest unit_test.py

出力

C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py
F
======================================================================
FAIL: test_area (unit_test.Testarea)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:\Users\Inderjit Singh\Desktop\unit_test.py", line 7, in test_area
      self.assertAlmostEqual(area(5),25)
AssertionError: 10 != 25 within 7 places (15 difference)

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (failures=1)

私たちのコードは単体テストに失敗しました。原因はトレースバックに示されています。最初の関数self.assertAlmostEqual(area(5)、25)により、コードが失敗します。関数は10を返しますが、期待される出力は25であるためです。

これは簡単な機能なので、修正方法はわかっています。私たちのarea()コードは間違っています。 (a + a)ではなく(a * a)を返す必要があります。

area()コードを修正して、単体テストを再実行しましょう。

def area(a):
   return (a*a)

unit_test.pyを再実行します

C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
>

これで、area()のコードが修正されたため、OKステータスで正常に実行されます。これにより、unit_test.pyファイルで指定されたすべてのケースに対してコードが完全に実行されるようになります。

これは、単体テストについてのアイデアを与えるための非常に単純なアイデアでした。 unittestモジュールには、開発プロセスの単体テストで使用される他のさまざまな機能があります。


  1. Unittestを使用したPythonプログラムでのユニットテスト

    この記事では、Python3.xで利用可能なunittestモジュールを使用して、ソフトウェアテストの基本について学習します。またはそれ以前。自動化、テストのセットアップと終了コードの共有、およびすべてのフレームワークの独立したテストが可能になります。 単体テストでは、さまざまなオブジェクト指向の概念を使用します。ここでは、主に使用されるいくつかの概念について説明します。 テストケース −これは、特定の入力セットに従った応答固有の基本クラスです。この操作を実装するには、ユニットテストの基本クラス、つまり「TestCase」を使用します。 テストスイート −テストケースをまとめて実

  2. Unittestを使用したPythonでのユニットテスト

    この記事では、Python 3.xで利用可能な単体テストモジュールを使用して、ソフトウェアテストの基本について学習します。またはそれ以前。 自動化、テストのセットアップコードと終了コードの共有、およびすべてのフレームワークの独立したテストが可能になります。 単体テストでは、さまざまなオブジェクト指向の概念を使用します。ここでは、主に使用されるいくつかの概念について説明します。 テストケース −これは、特定の入力セットに従った応答固有の基本クラスです。単体テストの基本クラス、つまり「 TestCase 」を使用して、この操作を実装します。 テストスイート −テストケースをまとめ