qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          python單元測試

          unittest是python單元測試框架,又叫做PyUnit。

            之所以稱為框架是它代替開發人員完成了一些調用、IO等與單元測試無直接關系的支撐代碼,讓開發人員可以專注與測試用例的編寫,簡化單元測試工作。

            單元測試是一種基本的,由開發人員(而不是測試人員)完成的測試,保證一個程序基本單元的正確性。“單元”的概念我個人理解就類似電子設備中的元器件,一個個元器件(單元)組成了整個電子設備(程序)。而元器件的功能是單一的、確定的,可以在電子設備未完全成型(程序未完全實現)之前對其正確性進行測試(即單元測試)。同時,這些元器件是獨立的,可以方便的更換(高內聚,低耦合,可以任意重構——只要滿足前面的單元測試)。所以單元測試是測試驅動開發、極限編程、敏捷中的重要概念。

            一個簡單的例子:

          #FileName: ut_target.py
          class EqualToZero(Exception): pass
          class SplitZero(object):
          def splitzero(self, num):
          if num > 0:
          return "num is bigger than zero"
          elif num < 0:
          return "num is smaller than zero"
          else:
          raise EqualToZero
          #FileName: utest.py
          from ut_target import SplitZero, EqualToZero
          import unittest
          class SzTestCase(unittest.TestCase):
          def setUp(self):
          print "test start"
          def tearDown(self):
          print "test stop"
          def testSzBig(self):
          num = 10
          sz = SplitZero()
          self.assertEqual(sz.splitzero(num),
          "num is bigger than zero")
          def testSzSmall(self):
          num = -10
          sz = SplitZero()
          self.assertEqual(sz.splitzero(num),
          "num is smaller than zero")
          def testSzEqual(self):
          num = 0
          sz = SplitZero()
          self.assertRaises(EqualToZero, sz.splitzero, num)
          if __name__ == "__main__":
          unittest.main()
          執行python utest.py -v
          testSzBig (__main__.SzTestCase) ... test start
          test stop
          ok
          testSzEqual (__main__.SzTestCase) ... test start
          test stop
          ok
          testSzSmall (__main__.SzTestCase) ... test start
          test stop
          ok
          ----------------------------------------------------------------------
          Ran 3 tests in 0.000s
          OK

            unittest基本使用方法

            1.import unittest

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

            3.定義setUp和tearDown,在每個測試用例前后做一些輔助工作。

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

            5.一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要是調用assertEqual、assertRaises等斷言方法判斷程序執行結果和預期值是否相符。

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

            7.如果測試未通過,會輸出相應的錯誤提示。如果測試全部通過則不顯示任何東西,這時可以添加-v參數顯示詳細信息。

          posted on 2013-07-25 10:36 順其自然EVO 閱讀(257) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年7月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 从江县| 曲沃县| 太湖县| 连山| 独山县| 湄潭县| 伊宁县| 贵阳市| 静海县| 剑川县| 台北县| 韶山市| 大姚县| 铁岭市| 固镇县| 宜宾市| 江油市| 工布江达县| 大埔县| 南漳县| 郑州市| 同江市| 望奎县| 印江| 泸西县| 阳新县| 东城区| 沧源| 长泰县| 太仆寺旗| 尼勒克县| 阳新县| 华阴市| 平原县| 塔城市| 安泽县| 翁源县| 城步| 时尚| 响水县| 鱼台县|