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实现根据图标提取分类应用程序实例
Sep 28 Python
在服务器端实现无间断部署Python应用的教程
Apr 16 Python
python实现获取Ip归属地等信息
Aug 27 Python
Python数据拟合与广义线性回归算法学习
Dec 22 Python
python opencv 图像尺寸变换方法
Apr 02 Python
Python中max函数用于二维列表的实例
Apr 03 Python
老生常谈python中的重载
Nov 11 Python
Flask框架工厂函数用法实例分析
May 25 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
Python 中数组和数字相乘时的注意事项说明
May 10 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
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
js的对象与函数详解
2019/01/21 Javascript
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
对python多线程与global变量详解
2018/11/09 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python对csv文件追加写入列的方法
2019/08/01 Python
python 循环数据赋值实例
2019/12/02 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
中小学校园安全广播稿
2014/09/29 职场文书
年会主持人开场白台词
2015/05/29 职场文书
追悼会答谢词范文
2015/09/29 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
导游词之太湖
2019/10/08 职场文书
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers