unittestコア要素


1.TestCase


TestCaseの例はテスト例です.テスト例とは何ですか.テスト前の準備環境の構築(setup)、テストコードの実行(run)、テスト後の環境の復元(tearDown)など、完全なテストプロセスです.メタテスト(unit test)の本質もここにあり、1つのテスト例は完全なテストユニットであり、このテストユニットを実行することで、ある問題を検証することができる.

2.TestSuite


複数のテストケースが集まっているのがTestSuiteであり,TestSuiteもTestSuiteをネストすることができる.TestLoaderはTestCaseをTestSuiteにロードするために使用され、そのうちいくつかのloadTestsFrom_()メソッドは、それぞれの場所からTestCaseを探してインスタンスを作成し、addをTestSuiteに追加し、TestSuiteインスタンスを返します.

3.TextTestRunner


TextTestRunnerは、テストケースを実行するために使用され、run(test)はTestSuite/TestCaseのrun(result)メソッドを実行します.テストの結果はTextTestResultインスタンスに保存されます.テストの実行例、成功したか、失敗したかなどの情報が含まれます.

4.Fixture


テスト・インスタンス環境の構築と破棄はfixtureです.unittestケースクラスMathを構築整数加算を含む
class Math:
    def __init__(self,a,b):
        self.a=int(a)
        self.b=int(b)

    def add(self):
            return self.a+self.b

Mathクラスのユニットテスト
from caculator import Math
import unittest

class TestMath(unittest.TestCase):
    def setUp(self):
        print("Start test")

    def test_add(self):
        j=Math(5,10)
        self.assertEqual(j.add(),15)
        # 
        # self.assertEqual(j.add(),12)

    def tearDown(self):
        print("test end")

if __name__=='__main__':

    # 
    suite=unittest.TestSuite()
    suite.addTest(TestMath("test_add"))

    # 
    runner=unittest.TextTestRunner()
    runner.run(suite)