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 list使用示例 list中找连续的数字
Jan 27 Python
Python求两个list的差集、交集与并集的方法
Nov 01 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
详解python的argpare和click模块小结
Mar 31 Python
python实现kmp算法的实例代码
Apr 03 Python
选择python进行数据分析的理由和优势
Jun 25 Python
分享PyCharm的几个使用技巧
Nov 10 Python
浅析Django中关于session的使用
Dec 30 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
详解Python设计模式之策略模式
Jun 15 Python
Python hashlib模块的使用示例
Oct 09 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
详谈javascript精度问题与调整
2017/07/08 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
快速了解python leveldb
2018/01/18 Python
python自动12306抢票软件实现代码
2018/02/24 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
节约电力资源的建议书
2014/03/12 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
公司会议开幕词
2016/03/03 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
Python使用MapReduce进行简单的销售统计
2022/04/22 Python