python学习笔记- 单元测试,UnitTest

发布时间:2019-06-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了python学习笔记- 单元测试,UnitTest脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

所谓的单元测试,就是对一个模块,一个函数,或则是一个类进行正确性检测的一类测试工作。

以测试驱动的开发方式叫做测试驱动开发(test Drived Development). 这种开发模式不仅仅是测试,而是分解需求,保证代码质量的一种手段

单元测试不仅仅在测试的时候保障函数、模块或者类的功能符合我们的需求。同时,也有利于我们在未来修改类或者函数的时候,只需要再跑一遍单元测试就可以确保我们的修改对功能不会产生影响。

当然,单元测试也会让代码量大大增加。

编写单元测试代码需要引入Python的unITtest包。
我们可以新建一个单元测试类,但是这个类需要继承unitest.TestCase类。
测试类中的测试方法必须是test开头的,否则不会被执行。
那么这样我们就可以使用unitest.TestCase中的方法了。
常用的方法有:

assertEqual(self, First, second) # 判断是否是预期值
assertTrue(bool) # 判断是否为真
assertRaises(exception) #判断是非抛出特定异常。

我们来举一个例子:

我们先定义一个类自定义类,然后对它进行单元测试。

Dict.py

class Dict(dict):
    def __init__(self, **kwargs):
        suPEr(Dict, self).__init__(**kwargs)

    def __getattr__(self, item):
        try:
            return self[item]
        except KeyError:
            raise AttributeError

    def __setattr__(self, key, value):
        self[key] = value
import unittest
From Dict import Dict


class DictTest(unittest.TestCase):
    def test_init(self):
        d = Dict(a=100, b=200)
        self.assertEqual(d.a, 100)
        self.assertEqual(d.b, 200)
        self.assertTrue(isinstance(d, dict))

    def test_key(self):
        d = Dict()
        d['key'] = "300"
        self.assertEqual(d["key"], "300")

    def test_attar(self):
        d = Dict()
        d.attar = "attar"
        self.assertTrue("attar" in d)
        self.assertEqual(d.attar, "attar")

    def test_keyError(self):
        d = Dict()
        with self.assertRaises(KeyError):
            value = d["NotExisted"]

    def test_attarError(self):
        d = Dict()
        with self.assertRaises(AttributeError):
            value = d.not_existed

if __name__ == '__main__':
    unittest.main()

因为我们定义了一个dict的子类,所以我们要对它的key、value进行测试;同时它是一个类,所以我们也需要对它的attribute进行测试。

我们定义的unittest.TestCase子类,需要写上两句:

if __name__ == '__main__':
    unittest.main()

我们才能像普通python文件一样执行它。

另外,我们也可以用以下方式执行多个test

python -m unittest DictTest

SETUP 和 tearDown函数。

setUp和tearDown函数是两个特殊的函数。
setUp再所有单元测试开始前运行; tearDown函数在所有单元测试运行后运行。
这两个函数的应用场景主要有:
例如在需要连接数据库的情况下,可以在setUp函数中开始连接,在tearDown函数中关闭连接。

脚本宝典总结

以上是脚本宝典为你收集整理的python学习笔记- 单元测试,UnitTest全部内容,希望文章能够帮你解决python学习笔记- 单元测试,UnitTest所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。