python学习笔记-单元测试,UnitTest
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python学习笔记-单元测试,UnitTest,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2433字,纯文字阅读大概需要4分钟。
内容图文
![python学习笔记-单元测试,UnitTest](/upload/InfoBanner/zyjiaocheng/432/0eab536da4bb45b7b7b5237bfa443267.jpg)
以测试驱动的开发方式叫做测试驱动开发(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 Dictclass 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的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!
内容总结
以上是互联网集市为您收集整理的python学习笔记-单元测试,UnitTest全部内容,希望文章能够帮你解决python学习笔记-单元测试,UnitTest所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。