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抓取某汽车网数据解析html存入excel示例
Dec 04 Python
python使用cookie库操保存cookie详解
Mar 03 Python
python取代netcat过程分析
Feb 10 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
Python异常处理例题整理
Jul 07 Python
django的ORM操作 增加和查询
Jul 26 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
浅谈Pytorch torch.optim优化器个性化的使用
Feb 20 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
python删除文件、清空目录的实现方法
Sep 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
PHP 采集心得技巧
2009/05/15 PHP
PHP header函数分析详解
2011/08/06 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
Jquery选择子控件"大于号"和" "区别介绍及使用示例
2013/06/25 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
详解Flask前后端分离项目案例
2020/07/24 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
毕业生自荐信格式
2014/03/07 职场文书
投资意向书范本
2014/04/01 职场文书
学习方法演讲稿
2014/05/10 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
教师工作表现自我评价
2015/03/05 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
2016国庆促销广告语
2016/01/28 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
为什么node.js不适合大型项目
2021/04/28 Javascript