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 相关文章推荐
Python浅拷贝与深拷贝用法实例
May 09 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
Python中str.format()详解
Mar 12 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
python3.6中@property装饰器的使用方法示例
Aug 17 Python
Python concurrent.futures模块使用实例
Dec 24 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
python属于解释型语言么
Jun 15 Python
简述python Scrapy框架
Aug 17 Python
Django日志及中间件模块应用案例
Sep 10 Python
python 实现表情识别
Nov 21 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
php str_pad 函数使用详解
2009/01/13 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
js查找父节点的简单方法
2008/06/28 Javascript
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python中关于使用模块的基础知识
2015/05/24 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
天网工程实施方案
2014/03/26 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
信用卡工作证明范本
2015/06/19 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python