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 21 Python
python编写的最短路径算法
Mar 25 Python
编写Python脚本来获取Google搜索结果的示例
May 04 Python
详解Python中类的定义与使用
Apr 11 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
如何用python写一个简单的词法分析器
Dec 18 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
谈谈python垃圾回收机制
Sep 27 Python
Python进行区间取值案例讲解
Aug 02 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
php反弹shell实现代码
2009/04/22 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
用PHP代码给图片加水印
2015/07/01 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
Python笔记之工厂模式
2019/11/20 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
Python与C/C++的相互调用案例
2021/03/04 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
公司新年寄语
2014/04/04 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
学校体育节班级口号
2015/12/25 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript