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提示No module named images的解决方法
Sep 29 Python
《Python之禅》中对于Python编程过程中的一些建议
Apr 03 Python
在Python中操作字典之clear()方法的使用
May 21 Python
python3+PyQt5泛型委托详解
Apr 24 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
Python 下载及安装详细步骤
Nov 04 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
Django数据统计功能count()的使用
Nov 30 Python
利用Python判断你的密码难度等级
Jun 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
javascript中clone对象详解
2014/12/03 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
基于python进行桶排序与基数排序的总结
2018/05/29 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Django框架视图函数设计示例
2019/07/29 Python
python如何构建mock接口服务
2021/01/28 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
美国健康和保健平台:healtop
2020/07/02 全球购物
培训演讲稿范文
2014/01/12 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
活动总结范文
2014/08/30 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
超市督导岗位职责
2015/04/10 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
2015年工程部工作总结
2015/04/30 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python