国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python unittest模塊用法實例分析

2020-02-23 00:16:26
字體:
來源:轉載
供稿:網友

本文實例講述了Python unittest模塊用法。分享給大家供大家參考,具體如下:

python的unittest模塊提供了一個測試框架,只要我們寫一個繼承unittest.TestCase的類,類中用setUp做初始化,用tearDown做清理。

主要用到的函數有:

failedinfo表示不成立打印信息failedinfo,為可選參數
self.fail([msg])會無條件的導致測試失敗,不推薦使用。
self.assertEqual(value1, value2, failedinfo) # 斷言value1 == value2
self.assertTrue(表達式, failedinfo) # 斷言value為真
self.assertFalse(表達式, failedinfo) # 斷言value為假
# 斷言肯定發生異常,如果沒發生異常,則為測試失敗。
# 參數1為異常,參數二為拋出異常的調用對象,剩余參數為傳遞給可調用對象的參數。
self.assertRaises(ValueError, self.widget.resize, -1, -1)
調用時機的加self,如self.assertEqual(self.seq, range(10)),self.assertTrue(value > 100)

更詳細的教程見:http://pyunit.sourceforge.net/pyunit_cn.html

Python代碼:

#coding=utf-8import randomimport unittestclass TestSequenceFunctions(unittest.TestCase):  def setUp(self):    self.seq = range(10)  def test_shuffle(self):    # make sure the shuffled sequence does not lose any elements    random.shuffle(self.seq)    self.seq.sort()    self.assertEqual(self.seq, range(10))    # should raise an exception for an immutable sequence    self.assertRaises(TypeError, random.shuffle, (1,2,3))  def test_choice(self):    element = random.choice(self.seq)    self.assertTrue(element in self.seq)  def test_sample(self):    with self.assertRaises(ValueError):      random.sample(self.seq, 20)    for element in random.sample(self.seq, 5):      self.assertTrue(element in self.seq)results_fields = [  ("username", unicode),  ("showid", unicode),  ("total_pv", int),  ("pubdate", unicode),  ("tags", list),  ("showname", unicode),  ("pg", int),  ("ext", str),]results_fields_map = dict(results_fields)class TestDictValueFormatFunctions(unittest.TestCase):  def setUp(self):    self.results = [{      "username": u"瘋狂豆花",      "showid": u"130e28f0fe0811e0a046",      "total_pv": 14503214,      "pubdate": u"2012-07-07 01:22:47",      "tags": [        "軒轅劍",        "天之痕"        ],      "showname" : u"軒轅劍之天之痕",      "pg" : 1,      "ext" : "mp4"    }    ]  def test_format(self):    self.assertTrue(isinstance(self.results, list), "self.results's type must be dict but got {0}".format(type(self.results)))    for r in self.results:      for f in results_fields_map:        value = r.get(f, None)        self.assertTrue(isinstance(value, results_fields_map[f]), u"{0}'s type must be {1} but got {2}".format(value, results_fields_map[f], type(value)))        #self.assertTrue(isinstance(value, results_fields_map[f]))  def test_value(self):    for r in self.results:      self.assertEqual(r["pg"], 1)      self.assertEqual(r["ext"], u"mp4")if __name__ == '__main__':  # unittest.main() # 用這個是最簡單的,下面的用法可以同時測試多個類  # unittest.TextTestRunner(verbosity=2).run(suite1) # 這個等價于上述但可設置verbosity=2,省去了運行時加-v  suite1 = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)  suite2 = unittest.TestLoader().loadTestsFromTestCase(TestDictValueFormatFunctions)  suite = unittest.TestSuite([suite1, suite2])  unittest.TextTestRunner(verbosity=2).run(suite)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁都县| 将乐县| 行唐县| 花垣县| 石景山区| 株洲市| 宣威市| 北宁市| 应用必备| 勃利县| 华阴市| 桐柏县| 鹤岗市| 万安县| 闽清县| 顺昌县| 融水| 西城区| 梨树县| 德州市| 太和县| 鄢陵县| 繁昌县| 江源县| 罗平县| 普宁市| 平乐县| 曲麻莱县| 肥城市| 定襄县| 闸北区| 镇坪县| 嘉荫县| 邛崃市| 西青区| 饶平县| 焉耆| 五指山市| 达拉特旗| 庆元县| 吉木乃县|