类Dict在文件abstest.py中
class Dict(dict):
def __init__(self,**kw):
super().__init__(**kw)
def __getattr__(self,key):
try:
return self[key]
except KeyError:
raise AttributeError('Dict object has no attribute %s' % key)
def __setattr__(self,key,value):
self[key]=value
类TestDict在文件hello.py下
import unittest
from abstest import Dict
#测试单元
class TestDict(unittest.TestCase):
def test_init(self):
d=Dict(a=1,b='test')
self.assertEqual(d.a,1)
self.assertEqual(d.b,'test')
self.assertEqual(isinstance(d,dict),True)
def test_key(self):
d=Dict()
d['key']='value'
self.assertEqual(d['key'],'value')
def test_attr(self):
d=Dict()
d.key='value'
self.assertEqual('key' in d,True)
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
if __name__=='__main__':
unittest.main()
编写单元测试时,我们需要编写一个测试类,从unittest.TestCase
继承。
以test
开头的方法就是测试方法,不以test
开头的方法不被认为是测试方法,测试的时候不会被执行。