unittest框架
2022/9/4 23:24:13
本文主要是介绍unittest框架,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
本次内容主要介绍单元测试框架unittest。
一、什么是单元测试?
就是对一些函数或者类进行测试的过程。
二、单元测试框架的作用?
- 收集用例
- 处理断言
- 测试报告
三、unittest相关概念
1、TestCase
测试用例。
2、TestSuite
测试套件。
3、TestLoader
测试用例加载器。
4、TestRunner
运行器、执行器。主要用于初始化运行器
5、Fixture
测试夹具,测试固件。定义在测试类的下面,主要用于测试环境的准备和清理工作,包含有setUp(在每个测试用例执行之前会执行的代码),tearDown(在每个测试用例执行之后会执行的代码),setUpClass(在每个测试类之前只执行一次的代码,需要使用@classmethod声明),tearDownClass(在每个测试类之后只执行一次的代码,需要使用@classmethod声明)四个函数。
四、unittest框架的简单应用
上图为本次讲解需要用到的相关模块,其中”run_test“是unittest自带的,导入第三方库BeautifulReport生成测试报告。report.html是测试报告文件。
模块1:test_add.py
def add(a, b): return a + b # 1,导入 unittest, 是python内置的 import unittest # 2, 测试类 #TestAdd继承TestCase class TestAdd(unittest.TestCase): def test_add_success(self): a = 3 b = 4 expected = 7 actual = add(a, b) # unittest 已经实现好的断言方式 self.assertEqual(expected, actual)
模块2:test_login.py
import unittest #定义login() def login(username=None, password=None): if username is not 'xiao' or password is not '123456': return {"code": "400", "msg": "用户名或密码错误"} if username == 'xiao' and password == '123456': return {"code": "200", "msg": "登录成功"} return {"code": "300", "msg": "用户名或密码为空"} #定义测试类,包含4条测试用例 class TestLogin(unittest.TestCase): def test_login_success(self): username = 'xiao' password = '123456' expected = {"code": "200", "msg": "登录成功"} actual = login(username, password) self.assertEqual(expected, actual) def test_login_fail1(self): username = '' password = '123456' expected = {"code": "300", "msg": "用户名或密码为空"} actual = login(username, password) self.assertEqual(expected, actual) def test_login_fail2(self): username = 'xiao' password = '' expected = {"code": "300", "msg": "用户名或密码为空"} actual = login(username, password) self.assertEqual(expected, actual) def test_login_fail3(self): username = 'xiao' password = '123' expected = {"code": "400", "msg": "用户名或密码错误"} actual = login(username, password) self.assertEqual(expected, actual)
模块3:run_test.py
#导入unittest模块 import unittest from BeautifulReport import BeautifulReport #TestSuite 测试套件,存储所有的测试用例 #初始化测试套件 suite = unittest.TestSuite() #加载所有的测试用例 loader = unittest.TestLoader() #发现用例 cases = loader.discover(r"./") #将找到的所有测试用例加载到suite suite.addTest(cases) #运行用例 #初始化运行器 # runner = unittest.TextTestRunner() # runner.run(suite) runner = BeautifulReport(suite) runner.report('测试报告')
这篇关于unittest框架的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行