千家信息网

unittest怎么用

发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,这篇文章将为大家详细讲解有关unittest怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.单元测试单元测试是指对软件中的最小可测试单元进行检查和验证,Py
千家信息网最后更新 2025年01月27日unittest怎么用

这篇文章将为大家详细讲解有关unittest怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1.单元测试

  • 单元测试是指对软件中的最小可测试单元进行检查和验证,Python中有一个自带的单元测试框架unittest模块,不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果;

2.unittest库中的基本组件

  • unittest.TestCase():是所有测试用例类继承的基本类,一个类只要继承了unittest中的TestCase类就是一个测试用例类,就可以在类中写测试用例;

from unittest import TestCase, mainclass MyTest(TestCase):  # 继承unittest.TestCase    def setUp(self):        # 测试用例执行前的初始化工作        print('开始执行')    def tearDown(self):        # 测试用例执行之后的善后工作        print('执行完毕')    def testWay(self):        print('这是测试用例')if __name__ == '__main__':    main()  # 运行所有的测试用例
  • unittest.TestSuite():用来创建测试套件,其中有一个addTest()方法可以将一个或多个测试用例添加到测试套件中,先添加的哪个方法就先运行哪个方法;

  • unittest.TextTextRunner():通过该类中的run()方法来运行suite所组装的测试用例;

  • unittest.defaultTestLoader():通过该类下面的discover()方法可自动根据测试目录start_dir匹 配查找测试用例模块(以test开头,以.py结尾的文件,例如:test*.py), 并将查找到的测试用例 组装到测试套件,因此可以直接通过run()方法执行discover;

  • unittest.skip():装饰器,可过滤不需要执行的用例,使这个用例不执行;

  • unittest.main():可以方便的将一个单元测试模块变为可直接运行的测试脚本,main()方法使 用TestLoader类来搜索所有包含在该模块中以"test"命名开头的测试方法,并自动执行他们 ;

3.TestCase类中的方法

  • setUp()方法:用于测试用例执行前的初始化。如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。如果测试用例需要登录web,可以先获取cookie,获取文件句柄;

  • tearDown()方法:用于测试用例执行之后的善后工作,如关闭数据库连接,关闭文件;

  • assert*():断言方法,相当于if-else里面的条件判断,在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的;

4.unittest中常用的断言方法

  • assertEqual(self, first, second, msg=None):判断两个参数是否相等,如果相等则测试用例通过;

  • assertNotEqual(self, first, second, msg=None):判断两个参数是否相等,如果不相等则测试用例通过;

  • assertTrue(self, expr, msg=None):判断是否为真,为真则测试用例通过;

  • assertFalse(self, expr, msg=None):判断是否为假,为假则测试用例通过;

  • assertIs(a, b, msg=None):断言a是否是b,如果是则测试用例通过。

  • 更多的断言方法可以查看官网: https://docs.python.org/3/library/unittest.html#assert-methods

5.编写测试用例

  • 首先从unittest模块中导入TestCase、main等需要用到的类;

  • 然后自定义一个类继承TestCase类;

  • 可以重写TestCase类中的setUp()初始化方法,和tearDown()清理方法,这两个方法是成对出 现的;

  • 然后编写以字母开头的测试用例,执行顺序默认是根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z

  • 最后调用unittest.main()方法将一个单元测试模块变成可以直接运行的测试脚本,然后自动执行测试用例;

from unittest import TestCase, mainclass MyTestCase(TestCase):    # setUp、tearDown每次执行一个test开头的方法时,都会调用一次    def setUp(self):        print('setup')    def tearDown(self):        print('tearDown')    def test_1(self):        print('第一个测试用例')    def test_2(self):        print('第二个测试用例')if __name__ == '__main__':    main()

关于"unittest怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

测试 方法 单元 模块 运行 开头 两个 套件 数据 数据库 文件 更多 篇文章 结果 顺序 工作 参数 字母 框架 脚本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南大信网络技术有限公司 广州学网络安全工程师哪所学校好 a股生产网络安全核心软件公司 网络安全科发言稿 我的世界国际服32k生存服务器 利用软件定义网络技术 国家级维普数据库 微博业务关系型数据库 数据库er图主键和外键怎么确定 新服务器怎么分d盘 梦幻测试服务器周一可以转服吗 苏州大型软件开发公司有哪些 关系数据库的数据表的特点 亚马逊云服务器名称 泾县微型软件开发服务价格大全 底层平台软件开发 江苏自动软件开发项目信息 公共服务数据库 国内化工软件开发现状 数据库中取一列中最小的值 网络安全聊天室2期 财政局数据库系统 我的世界国际服32k生存服务器 头条游戏无法连接到服务器 php从数据库中提取数据 光学软件开发技术难点 祥云绘画软件开发 巢湖方便网络技术服务怎么样 西咸新区软件开发 网络安全检查中期总结报告
0