個人在工作中用的不多。
編寫單元測試,我們需要引入python自帶的unittest
模組:
class dict(dict):def __init__(self, **kw):
super(dict, self).__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
編寫單元測試類:
unittest中有很多方法測試類中的屬性的方法。
# -*- coding: utf-8 -*-import unittest
import test
class testdict(unittest.testcase):
def test_init(self):
d = test.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 = test.dict()
d['key'] = 'value'
self.assertequal(d['key'], 'value')
def test_attr(self):
d = test.dict()
d.key = 'value'
self.asserttrue('key' in d)
self.assertequal(d['key'], 'value')
def test_keyerror(self):
d = test.dict()
with self.assertraises(keyerror):
value = d['empty']
def test_attrerror(self):
d = test.dict()
with self.assertraises(attributeerror):
value = d.empty
if __name__=='__main__':
testdict.test_attrerror()
可以在單元測試中編寫兩個特殊的setup()
和teardown()
方法。這兩個方法會分別在每呼叫乙個測試方法的前後分別被執行。
可以將類中每乙個方法都需要執行的**放到其中。比如連線資料庫等操作
def setup(self):print 'setup...'
def teardown(self):
print 'teardown...'
Python 單元測試
一 假設我們編寫了一段程式,主要功能是完成阿拉伯數字和羅馬數字之間的轉換 在羅馬數字中,利用7個字母進行重複或者組合來表達各式各樣的數字 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 還有一些關於構造羅馬數字的規則。此程式的框架如下 其中,class romanerror...
python 單元測試
assertequal a,b assertnotequal a,b 斷言值是否相等 assertis a,b assertisnot a,b 斷言是否同一物件 記憶體位址一樣 assertlistequal list1,list2 assertitemnotequal list1,list2 斷言...
Python單元測試
本文章整理自 使用python3.6編寫乙個單元測試demo,例如 對學生student類編寫乙個簡單的單元測試。1 編寫student類 usr bin env python3 coding utf 8 class student object def init self,name,score s...