class Dict(
dict):
#*kwe为列表,**为字典
def __init__(
self,**kw):
super().
__init__(**kw)
#相当于java中的get方法,下面setname的值
def __getattr__(
self, key):
try:
return self[key]
except KeyError:
raise AttributeError(
r'Dict object has no attrict %s' %key)
#相当于java中setname的值,设置成传进去的value的值
def __setattr__(
self, key, value):
self[key]=value
#单元测试:
"""
1.各测试用例必须以test_开头,后面调程序时它会自动运行这些用例
2.def setUp(self):在调用这些测试方法之前调用,例如要打开数据库,就可以把数据打开写在setup中
3.def tearDown(self):在调用这些测试方法之后调用,例如上面的关闭数据库
"""
import unittest
class TestDict(unittest.TestCase):
#判断初始化的值
def test_init(
self):
d=Dict(
a=
1,
b=
'test')
#断言可以用属性方法调用d.a 返回1
self.assertEquals(d.a,
1)
self.assertEquals(d.b,
'test')
#判断d是dict
self.assertTrue(
isinstance(d,
dict))
#测试key的值,d.key的值为value
def test_key(
self):
d=Dict()
d[
'key']=
'value'
self.assertEquals(d.key,
'value')
#测试属性
def test_attr(
self):
d=
dict()
d[
'key']=
'value'
self.assertTrue(
'key'in d)
self.assertEquals(d[
'key'],
'value')
#测试属性错误的状态
def test_attrerror(
self):
d=
dict()
#通过d.empty访问不存在的key时,我们抛出AttributeError
with self.assertRaises(
AttributeError):
value=d.empty
if __name__==
'__main__':
unittest.main()
#或者在命令行中执行:python3 -m unittest mydict_test
转载请注明原文地址: https://www.6miu.com/read-5609.html