Pythonのunittest
モジュールは、ユニットテストを行うためのリッチなツールセットを提供しています。この記事では、unittest.TestCase
クラスを拡張する方法について詳しく説明します。
unittest.TestCaseの基本
unittest.TestCase
は、テストケースを作成するために使用できる基本クラスです。テストケースは、特定の入力セットに対する特定の応答をチェックするテストの個々の単位です。
以下に、unittest.TestCase
を拡張して新しいテストケースを作成する基本的な例を示します。
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()
この例では、TestStringMethods
という新しいテストケースが作成され、その中に3つのテストメソッドが定義されています。
unittest.TestCaseの拡張
unittest.TestCase
を拡張することで、テストケースに追加の機能や特性を追加することができます。以下に、基本クラスを別のモジュールに移動するか、空のクラスでラップする方法を示します。
class BaseTestCases:
class BaseTest(unittest.TestCase):
def testCommon(self):
print('Calling BaseTest:testCommon')
value = 5
self.assertEqual(value, 5)
この例では、BaseTestCases
という新しいクラスが作成され、その中にBaseTest
というunittest.TestCase
を拡張したクラスが定義されています。これにより、BaseTest
クラスを継承することで、新しいテストケースにtestCommon
メソッドを追加することができます。
以上が、Pythonのunittest.TestCase
を拡張する基本的な方法です。これにより、テストケースに追加の機能や特性を追加し、より柔軟なテストを作成することが可能になります。