待測試的類(Widget.py)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# Widget.py # Python 2.7.6 class Widget: def __init__( self , size = ( 40 , 40 )): self .size = size def getSize( self ): return self .size def reSize( self ,width,height): if width < 0 or height < 0 : raise ValueError, 'illegal size' else : self .size = (width,height) return self .size def dispose( self ): pass |
測試類(Auto.py)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# coding=utf8 # Auto.dy # Python 2.7.6 from Widget import Widget #導(dǎo)入測試類模塊Widget class WidgetTestCase(unittest.TestCase): #讓所有執(zhí)行測試的類都繼承于TestCase類,可以將TestCase看成是對特定類進行測試的方法的集合 #在setUp()方法中進行測試前的初始化工作。 def setUp( self ): self .widget = Widget() #并在tearDown()方法中執(zhí)行測試后的清除工作,setUp()和tearDown()都是TestCase類中定義的方法。 def tearDown( self ): self .widget = None #測試Widget類中g(shù)etSize方法 def testgetSize( self ): print "Test GetSize" #對Widget類中g(shù)etSize()方法的返回值和預(yù)期值進行比較,確保兩者是相等的, #assertEqual()也是TestCase類中定義的方法。 self .assertEqual( self .widget.getSize(), ( 40 , 40 )) #測試Widget類中reSize方法 def testreSize( self ): print "Test Resize" #對Widget類中reSize()方法的返回值和預(yù)期值進行比較,確保兩者是相等的。 #assertEqual()也是TestCase類中定義的方法。 self .assertEqual( self .widget.reSize( 50 , 100 ),( 50 , 100 )) #提供名為suite()的全局方法,PyUnit在執(zhí)行測試的過程調(diào)用suit()方法來確定有多少個測試用例需要被執(zhí)行, #可以將TestSuite看成是包含所有測試用例的一個容器。 def suite(): suite = unittest.TestSuite() suite.addTest(WidgetTestCase( "testgetSize" )) #往此添加需要測試的方法testgetSize() suite.addTest(WidgetTestCase( "testreSize" )) #往此添加需要測試的方法testreSize() return suite if __name__ = = "__main__" : unittest.main(defaultTest = 'suite' ) #在主函數(shù)中調(diào)用全局方法. |
測試結(jié)果:
1
2
3
4
5
6
7
8
|
D:\Python>python27 Auto.py Test GetSize .Test Resize . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ran 2 tests in 0.004s OK |
總結(jié):
1。第一步:先寫好測試類
2。第二步:導(dǎo)入unittest模塊及測試的類,運用setup()方法做測試前的準(zhǔn)備工作,如建立數(shù)據(jù)庫連接,運用teardown()方法做測試后的清除工作,如取消數(shù)據(jù)庫的鏈接,再對類中的方法逐一做測試。
3。第三步: 寫suite()的全局方法,將要測試的方法,一一加入。
測試結(jié)果,有幾個測試用例就有幾個. 最后顯示OK,表示通過。