单元测试

关于单元测试

单元测试是用来对一个模块、函数、类进行正确性检验的测试工作

例子

对于abs() 绝对值函数而言

1 输入正数 期待返回值与输入值相同
2 输入负数 期待返回值与输入值相反
3 输入0 期待返回0
4 输入其他 期待抛出TypeError

 

单元测试的意义
如果我们对abs()函数进行了修改 那只用再跑一次单元测试如果通过说明我们的修改不会对abs()函数原有行为造成影响 如果不通过还要继续修改

 

代码

import unittest

from my_dict 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.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
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

运行

$ python mydict_test.py

结果

Ran 5 tests in 0.003s

OK

 

上一篇:作业六:三层神经网络调参_刘强


下一篇:用python 生成一个金字塔(面试笔试考到)