import unittest
from mydict import Dict
# 自定义测试类继承自 unittest.TestCase
class TestDict(unittest.TestCase):
# 此方法在每个测试函数执行前调用
def setUp(self):
print('begin testing...')
# 此方法在每个测试函数执行后调用
def tearDown(self):
print('test finished!\n')
# 一般将函数执行前需要初始化或者善后工作的代码, 放在上面两个函数中
# 以 test 开头的方法, 都是用于进行单元测试的方法, 会被自动执行
def test_init(self):
d = Dict(a = 520, b = 'love')
self.assertEqual(d.a, 520)
self.assertEqual(d.b, 'love')
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): # 表示期望下面的代码抛出一个 KeyError 异常
value = d['no_such_key'] # 访问一个不存在的键
def test_attrerror(self):
d = Dict()
with self.assertRaises(AttributeError): # 表示期望下面代码抛出一个 AttributeError
d.no_such_attr # 访问一个不存在的属性
if __name__ == '__main__':
unittest.main()