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中List.index()方法的使用教程
May 20 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
Python OpenCV实现鼠标画框效果
Aug 19 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
Python 实现集合Set的示例
Dec 21 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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 Ajax乱码
2008/04/09 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
JQuery中extend的用法实例分析
2015/02/08 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
js实现数字滚动特效
2019/12/16 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
详解Python中DOM方法的动态性
2015/04/11 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
Python3几个常见问题的处理方法
2019/02/26 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Python如何操作docker redis过程解析
2020/08/10 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
临床护士自荐信
2014/01/31 职场文书
励志演讲稿300字
2014/08/21 职场文书
五心教育心得体会
2014/09/04 职场文书
妈妈别哭观后感
2015/06/08 职场文书