Python单元测试与测试用例简析


Posted in Python onNovember 09, 2019

本文实例讲述了Python单元测试与测试用例。分享给大家供大家参考,具体如下:

单元测试与测试用例

简介

测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求

要为函数编写测试用例,可先导入模块 unittest 以及要测试的函数,再创建一个继承unittest.TestCase 的类,并编写一系列方法对函数行为的不同方面进行测试

创建实例(对比接收到的名和姓是否符合要求)

1.先创建个name_function.py的文件(文件名称可以另取),接收名和姓并返回整洁的全名

def get_formatted_name(first,last,middle=''):
  '''生成整洁的姓名'''
  if middle:
    full_name=first+' '+middle+' '+last
  else:
    full_name=first+' '+last
  return full_name.title()

2.再创建个test_name_function.py的文件,检查name_function.py()在给定名和姓时能否正确地工作

import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
  """测试name_function.py"""
  def test_first_last_name(self):
    """能够正确处理姓名么?"""
    formatted_name = get_formatted_name('liu','wei' )
    self.assertEquals(formatted_name, 'Liu Wei')
unittest.main()

上述代码思路:

  1. 导入模块 unittest 和要测试的函数 get_formatted_name()
  2. 创建一个名为 NamesTestCase 的类(类的命名可任取,但最好让它看起来与要测试的函数相关,并包含字样Test),用于包含一系列针对get_formatted_name()的单元测试。这个类必须继承unittest.TestCase,这样Python才知道如何运行你编写的测试
  3. NamesTestCase只包含一个方法,我将这个方法命名为test_first_last_name(),我们运行test_name_function.py 时,所有以test_打头的方法都将自动运行。在这个示例中,使用了实参‘liu'和‘wei'调用get_formatted_name(),并将结果存储到变量 formatted_name
  4. assertEquals()unittest类最有用的功能之一:一个断言方法。断言方法用来核实得到的结果与期望的结果一致。self.assertEquals(formatted_name, 'Liu Wei') 的意思是:将formatted_name 的值同字符串 'Liu Wei'进行比较
  5. 代码行unittest.main()让Python运行这个文件中的测试。

运行结果如下:

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

第1句的句点表明有一个测试通过。接下来的一行指出Python运行了一个测试,消耗的时间不到0.001秒。最后的OK表明该测试用例中的所有单元测试都通过了。

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
Atom的python插件和常用插件说明
Jul 08 Python
Django如何防止定时任务并发浅析
May 14 Python
pytorch使用Variable实现线性回归
May 21 Python
在Django的View中使用asyncio的方法
Jul 12 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
python实现视频读取和转化图片
Dec 10 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
python自动化测试之异常及日志操作实例分析
Nov 09 #Python
Python多线程模块Threading用法示例小结
Nov 09 #Python
Python for循环及基础用法详解
Nov 08 #Python
python常用排序算法的实现代码
Nov 08 #Python
python分布式编程实现过程解析
Nov 08 #Python
详解mac python+selenium+Chrome 简单案例
Nov 08 #Python
python manage.py runserver流程解析
Nov 08 #Python
You might like
解析thinkphp基本配置 convention.php
2013/06/18 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
javascript中检测变量的类型的代码
2010/12/28 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
Python的另外几种语言实现
2015/01/29 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
Flask之请求钩子的实现
2018/12/23 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
公司财务会计主管应聘求职信
2014/09/26 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
法院执行局工作总结
2015/08/11 职场文书
导游词之舟山普陀山
2019/11/06 职场文书