テストケースの初期化と終了関数

5559 ワード

この記事では、主にunittestの初期化と終了関数unittestの初期化と終了Pythonクラスのinitとdelについて説明します.まずPythonでのClassの初期化と終了を振り返ります
class chushihuatest():
    def __init__(self):
        print "       "
    def zhongjian(self):
            print "   " 
    def __del__(self):
        print "       "
if __name__ == '__main__':
    testChushihua = chushihuatest()
    testChushihua.zhongjian()

上の関数を実行すると、次の結果が表示されます.
これで初期化中間量は終了しました[Finished in 0.1 s]
つまり、chushihuatest()をインスタンス化してzhongjianという関数が呼び出されると、まず初期化関数_が呼び出されます.init_(self)、zhongjian関数を実行すると、終了関数_が実行されます.del_(self)だから実行結果は3行とも印刷されます.
unittestの初期化と終了関数はClassのinitとdelに似ている.実はテスト環境の初期化であり、いくつかのデータをロードします.テストを終了して力を入れたときに何かを閉じ、テストの結果は以下の通りです.
testDel (__main__.testNum) ...    
FAIL
  
testHello (__main__.testNum) ...    
  
ok
testSum (__main__.testNum) ...    
  
ok

======================================================================
FAIL: testDel (__main__.testNum)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "testcal.py", line 28, in testDel
    self.assertEqual(2,delnum(1,1))
AssertionError: 2 != 0

----------------------------------------------------------------------
Ran 3 tests in 0.000s

FAILED (failures=1)

実行に力を入れると初期化が先に実行され、実行が完了すると終了関数が実行され、リンクが破棄されることがわかります.自動化テストまたはユニットテストは、プロファイルからデータを読み込むことに関連する可能性があります.初期化時にファイルを開く必要があります.テストが完了したら、ファイルを閉じる必要があります.以下は具体的なソースコードです.
# -*- coding: utf-8 -*-
import unittest

def sumnum(a,b):
    return a + b

def delnum(a,b):
    return a - b

def hello():
    return "hello world"

def chengfa(a,b):
    return a * b

class testNum(unittest.TestCase):

    def setUp(self):
        print "   "

    def tearDown(self):
        print "  "

    def testSum(self):
        self.assertEqual(2,sumnum(1,1))

    def testDel(self):
        self.assertEqual(0,delnum(1,1))

    def testHello(self):
        self.assertEqual("hello world",hello())


if __name__ == '__main__':
    suite1 = unittest.TestLoader().loadTestsFromTestCase(testNum)
    unittest.TextTestRunner(verbosity=3).run(suite1)