Python单元测试及unittest框架用法实例解析


Posted in Python onJuly 09, 2020

例题取用登录模块:代码如下

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

Python单元测试及unittest框架用法实例解析

def test_username_nonentity(self):   #用户名不存在用例
  
result=login_check('admininin','111222333')
  
expect='用户名不存在'
  
self.assertEqual(expect,result['msg'])  #反之,如果不通过输出结果如下图

Python单元测试及unittest框架用法实例解析

注意

一个def方法就是一个测试用例

方法名就是用例的标题,用例方法名一定要已text_开头

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
TensorFlow实现Batch Normalization
Mar 08 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
Python编程flask使用页面模版的方法
Dec 28 Python
python取余运算符知识点详解
Jun 27 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
Python一行代码解决矩阵旋转的问题
Nov 30 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
Python之字符串的遍历的4种方式
Dec 08 Python
PyTorch中permute的使用方法
Apr 26 Python
python 抓取知乎指定回答下视频的方法
Jul 09 #Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 #Python
Python Selenium模块安装使用教程详解
Jul 09 #Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 #Python
django模型类中,null=True,blank=True用法说明
Jul 09 #Python
Python pip安装第三方库实现过程解析
Jul 09 #Python
详细分析Python可变对象和不可变对象
Jul 09 #Python
You might like
在项目中寻找代码的坏命名
2012/07/14 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
JSON相关知识汇总
2015/07/03 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python的Django框架使用入门指引
2015/04/15 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
人力资源主管的岗位职责
2014/03/15 职场文书
yy生日主持词
2014/03/20 职场文书
集中采购方案
2014/06/10 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
歼十出击观后感
2015/06/11 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers