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实现将不规范的英文名字首字母大写
Nov 15 Python
python一键升级所有pip package的方法
Jan 16 Python
Python编程使用NLTK进行自然语言处理详解
Nov 16 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
python pygame实现球球大作战
Nov 25 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
python hmac模块验证客户端的合法性
Nov 07 Python
python中numpy数组与list相互转换实例方法
Jan 29 Python
Django+Celery实现定时任务的示例
Jun 23 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
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
php获取远程文件内容的函数
2015/11/02 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python开发之thread实现布朗运动的方法
2015/11/11 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python处理excel绘制雷达图
2019/10/18 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
函授毕业个人自我评价
2014/02/20 职场文书
大学校务公开实施方案
2014/03/31 职场文书
《开国大典》教学反思
2014/04/19 职场文书
争先创优心得体会
2014/09/12 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python