Python单元测试及unittest框架用法实例解析
时间:2022-07-27
本文章向大家介绍Python单元测试及unittest框架用法实例解析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
例题取用登录模块:代码如下
def login_check(username,password):
''' 登录校验的函数
:param username:账号
:param password: 密码
:return: '''
if 6<=len(password)<=18:
if username=='admin' and password=='123456':
return {'code':0,'msg':'登录成功'}
else:
return {'code':1,'msg':'账号密码不正确'}
else:
return {'code':1,'msg':'密码长度在6-18之间'}
单元测试是什么:
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证 如何进行单元测试:
第一我们得写出测试用例,而测试用例主要的要素为(编号,标题,前置条件,操作步骤,预期结果,实际结果)
unittest框架核心的四个概念
1.TestCase:一个testcase的实例就是一个测试用例
2.TestSuite:多个测试用例集合在一起
3.TextTestRunner:用来执行测试用例
4.fifixture:测试用例环境的搭建和销毁,测试前环境的搭建(setUp),执行测试代码(run)以及测试后环境 的还原(tearDown)
登录测试用例标题如下等等:
1.用户名密码正确
2.用户名不存在
3. 密码小于6位
4. 密码大于18位
5. 用户名为空然后我们执行测试用例
import unittest #引用单元测试模块
from day8.登录测试代码 import login_check #将登陆模块代码引入
class Login_test(unittest.TestCase):
def setUp(self):
print("执行用例前都会执行这个方法,类似前置条件")
def tearDown(self):
print("用例执行完后 都会执行该方法")
def test_login_success(self): #登录成功用例
result=login_check('admin','123456') #这个是实际结果
expect='登录成功' #这个是预期结果
self.assertEqual(result['msg'],expect) #将实际结果和预期结果做比较,输出完全相同则通过 输出结果是OK
def test_username_nonentity(self): #用户名不存在用例
result=login_check('admininin','111222333')
expect='用户名不存在'
self.assertEqual(expect,result['msg']) #反之,如果不通过输出结果如下图
注意
一个def方法就是一个测试用例
方法名就是用例的标题,用例方法名一定要已text_开头
以上就是本文的全部内容,希望对大家的学习有所帮助。
- linux学习第三十六篇:MariaDB安装,Apache安装
- Python 5种连接字符串的方法
- Python 装饰器(Decorator)
- linux学习第三十七篇:安装PHP5,安装PHP7
- linux学习第三十八篇: Apache和PHP结合,Apache默认虚拟主机
- Python lambda表达式
- Python的闭包(Closure)与惰性计算(Lazy Evaluation)
- linux学习第三十九篇:Apache用户认证,域名跳转,Apache访问日志
- Python sorted()函数
- Python filter()函数
- Python reduce()函数
- Python map()函数
- Python iterator迭代器
- How To Implement The Decision Tree Algorithm From Scratch In Python (从零开始在Python中实现决策树算法)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在Python中创建命令行界面的最佳方式
- Diels-Alder反应的区域选择性分析
- 传说中的画图神器Plotnine,Python中的ggplot2
- 用ORCA做结构优化及轨迹查看
- 前端兼容之痛
- 离线安装PySCF程序(1.5及更高版本)
- Python Debug(调试)的终极指南
- Linux下做计算常用的别名alias推荐
- 离线安装支持Intel MKL的R-3.6
- Dalton使用——磷光及其相关过程
- 【赵渝强老师】Flink的Watermark机制(基于Flink 1.11.0实现)
- 在Windows CMD里“使用”常见Linux命令
- 什么是Python中的Dask,它如何帮助你进行数据分析?
- a[i] = i++ 到底对不对?
- 如何监视Python程序的内存使用情况