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中MySQL数据迁移到MongoDB脚本的方法
Apr 28 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
python统计多维数组的行数和列数实例
Jun 23 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 Python
解决python3 安装不了PIL的问题
Aug 16 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
logging level级别介绍
Feb 21 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
Python实现简单的2048小游戏
Mar 01 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 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
jquery复选框全选/取消示例
2013/12/30 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
造价工程师个人求职信
2013/09/21 职场文书
职称自我鉴定
2013/10/15 职场文书
大学生就业自我鉴定
2013/10/26 职场文书
运动会稿件200字
2014/02/07 职场文书
职业生涯规划书前言
2014/04/15 职场文书
高中学生期末评语
2014/04/25 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫