python-zx筆記9-單元測試
阿新 • • 發佈:2018-03-03
一個 執行 main loader strong pan 失敗 init ret 方法,就是從各個地方尋找TestCase,創建它們的實例,然後add到TestSuite中,再返回一個TestSuite實例。
unittest核心要素
1.TestCase
一個TestCase的實例就是一個測試用例。什麽是測試用例呢?就是一個完整的測試流程,包括測試前準備環境的搭建(setUp),執行測試代碼(run),以及測試後環境的還原(tearDown)。元測試(unit test)的本質也就在這裏,一個測試用例是一個完整的測試單元,通過運行這個測試單元,可以對某一個問題進行驗證。
2.TestSuite
而多個測試用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuite。 TestLoader是用來加載TestCase到TestSuite中的,其中有幾個loadTestsFrom__()
3.TextTestRunner
TextTestRunner是來執行測試用例的,其中的run(test)會執行TestSuite/TestCase中的run(result)方法。 測試的結果會保存到TextTestResult實例中,包括運行了多少測試用例,成功了多少,失敗了多少等信息。
4.Fixture
而對一個測試用例環境的搭建和銷毀,是一個fixture。
//calculator.py
class Math:
def __init__(self,a,b):
self.a = int(a)
self.b = int(b)
def add(self):
return self.a + self.b
def jian(self):
return self.a - self.b
單元測試
1 from calculator import Math
2 import unittest
3
4 class TestMath(unittest.TestCase):
5 def setUp(self):
6 print("Start test")
7
8 def test_add(self):
9 j = Math(5,10)
10 self.assertEqual(j.add(),15)
11 # self.assertEqual(j.add(),12)
12
13 def tearDown(self):
14 print("test end")
15
16 if __name__==‘__main__‘:
17 #構造測試集
18 suite = unittest.TestSuite()
19 suite.addTest(TestMath("test_add"))
20
21 #執行測試
22 runner = unittest.TextTestRunner()
23 runner.run(suite)
python-zx筆記9-單元測試