单元测试:unittest.TestCase
a.測(cè)試驅(qū)動(dòng)開發(fā):(TDD:Test-Driven Development)
b.單元測(cè)試是用來對(duì)一個(gè)模塊、一個(gè)函數(shù)或者一個(gè)類來進(jìn)行正確性檢驗(yàn)的測(cè)試工作。
c.以test開頭的方法就是測(cè)試方法
d.模塊函數(shù):
????檢查預(yù)期結(jié)果:assertEqual()
????驗(yàn)證條件:assertTrue()或 assertFalse()
????驗(yàn)證是否引發(fā)了特定異常:assertRaises()
????在每個(gè)測(cè)試方法之前和之后執(zhí)行的指令:setUp()和tearDown()
????為測(cè)試腳本提供命令行界面:?unittest.main()
mydict.py:
#!/usr/bin/python #?-*-?coding:?utf-8?-*-class?Dict(dict):def?__init__(self,?**kw):super().__init__(**kw)def?__getattr__(self,?key):try:return?self[key]except?KeyError:raise?AttributeError(r"'Dict'?object?has?no?attribute?'%s'"?%?key)def?__setattr__(self,?key,?value):self[key]?=?value
?mydict_test.py:
#!/usr/bin/python #?-*-?coding:?utf-8?-*-import?unittestfrom?mydict?import?Dictclass?TestDict(unittest.TestCase):def?setUp(self):print('setUp...')def?tearDown(self):print('tearDown...')def?test_init(self):d?=?Dict(a=1,?b='test')self.assertEqual(d.a,?1)self.assertEqual(d.b,?'test')self.assertTrue(isinstance(d,?dict))def?test_key(self):d?=?Dict()d['key']?=?'value'self.assertEqual(d.key,?'value')def?test_attr(self):d?=?Dict()d.key?=?'value'self.assertTrue('key'?in?d)self.assertEqual(d['key'],?'value')def?test_keyerror(self):d?=?Dict()with?self.assertRaises(KeyError):value?=?d['empty']def?test_attrerror(self):d?=?Dict()with?self.assertRaises(AttributeError):value?=?d.empty運(yùn)行單元測(cè)試??
一旦編寫好單元測(cè)試,我們就可以運(yùn)行單元測(cè)試。最簡(jiǎn)單的運(yùn)行方式是在mydict_test.py的最后加上兩行代碼:
if?__name__?==?'__main__':unittest.main()這樣就可以把mydict_test.py當(dāng)做正常的python腳本運(yùn)行:
$?python?mydict_test.py另一種方法是在命令行通過參數(shù)-m unittest直接運(yùn)行單元測(cè)試:
$?python?-m?unittest?mydict_test ..... ----------------------------------------------------------------------Ran?5?tests?in?0.000sOK轉(zhuǎn)載于:https://blog.51cto.com/13502993/2149063
總結(jié)
以上是生活随笔為你收集整理的单元测试:unittest.TestCase的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SHELL实战day12
- 下一篇: JavaScript基础知识必知!