Pythonのunittestは、Pythonの標準ライブラリに含まれるユニットテストフレームワークです。この記事では、Python unittestの基本的な使い方を解説します。
unittestの基本概念
unittestでは以下のような概念が重要となります。
- test fixture: テストの準備と後始末を行うためのコードです。例えば、一時的なデータベースの作成やサーバープロセスの起動などが含まれます。
- test case: テストケースは、特定の入力に対する特定の反応をチェックする個々のユニットテストです。unittestは、新しいテストケースを作成するための基本クラス、TestCaseを提供しています。
- test suite: テストスイートは、テストケース、テストスイート、またはその両方の集合です。これは、一緒に実行するべきテストを集約するために使用されます。
- test runner: テストランナーは、テストの実行を調整し、ユーザーに結果を提供するコンポーネントです。ランナーは、グラフィカルインターフェイス、テキストインターフェイス、またはテストの実行結果を示す特別な値を返すことができます。
unittestの基本的な使い方
以下に、Pythonのunittestを使用した基本的なテストコードの例を示します。
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
このコードは、Pythonの文字列メソッドに対するいくつかのテストを含んでいます。各テストメソッドは、特定の条件が真であることを確認するためのアサーションメソッドを使用しています。
以上がPythonのunittestの基本的な使い方となります。より詳細な情報や高度な使い方については、公式ドキュメンテーションを参照してください。