python單元測試

在線文檔:http://docs.python.org/2/library/unittest.htmlhtml

python的unittest模塊提供了一個測試框架,只要咱們寫一個繼承unittest.TestCase的類python

1.寫測試類,此類必定要繼承unittest.TestCase。框架

2.類中的setUp作初始化,用tearDown作結束清理。(固定方法)dom

3.你要寫的測試方法了,通常都是以test_打頭(一般是test_原方法名),好比: def test_sub(self):函數

import random
        import unittest
        class UserTest(unittest.TestCase):
                def setUp(self):                                                    第**1**步
                    self.seq = range(10)     #須要初始化的數據,至關於__init__方法

                def tearDown(self):          #程序運行完時,執行該方法(清理)      第**3**步
                    ''' run end ,release '''
                    self.seq  = None

                def test_shuffle(self):       #你要寫的方法                         第**2**步
                    random.shuffle(self.seq)
                    self.seq.sort()
                    self.assertEqual(self.seq, range(10))
                    self.assertRaises(TypeError, random.shuffle, (1,2,3))

        if __name__ == '__main__':
            unittest.main()

總結:測試

(1)import unittest

(2)定義一個繼承自unittest.TestCase的測試用例類

(3)定義setUp和tearDown,在每一個測試用例先後作一些輔助工做。

(4)定義測試用例,名字以test開頭。

(5)一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要是調用assertEqual、        

    assertRaises等斷言方法判斷程序執行結果和預期值是否相符。

(6)調用unittest.main()啓動測試

(7)若是測試未經過,會輸出相應的錯誤提示。若是測試所有經過則不顯示任何東西,這時能夠添

   加-v參數顯示詳細信息。

4.測試用例的編寫code

(1)針對性: 每一個用例,即test函數,必須只解決一個問題,這樣定位問題會很簡單

(2)獨立性: 每一個用例之間沒有影響,一個的輸出不會影響到另一個的執行

(3)完備性: 每一個用例所挑選的例子應該有表明性,儘量增長覆蓋度

(4)順序: 對於每一個功能點來講,可能涉及到不一樣的方面,這些用例最好用一個類組織起來,並按

         照必定的邏輯順序排列,這個對開發是有指導做用的

5.下面是unittest模塊的經常使用方法:htm

assertEqual(a, b)     a == b      

    assertNotEqual(a, b)     a != b   

    assertTrue(x)     bool(x) is True   

    assertFalse(x)     bool(x) is False   

    assertIs(a, b)     a is b     2.7

    assertIsNot(a, b)     a is not b     2.7

    assertIsNone(x)     x is None     2.7

    assertIsNotNone(x)     x is not None     2.7

    assertIn(a, b)     a in b     2.7

    assertNotIn(a, b)     a not in b     2.7

    assertIsInstance(a, b)     isinstance(a, b)     2.7

    assertNotIsInstance(a, b)     not isinstance(a, b)     2.7
相關文章
相關標籤/搜索