Python单元测试简单示例


Posted in Python onJuly 03, 2018

本文实例讲述了Python单元测试方法。分享给大家供大家参考,具体如下:

Eric书中《Python编程从入门到实践》中的一个例子。

《Python编程从入门到实践》随书源码可至此下载:https://3water.com/books/582019.html。

首先定义了一个测试函数:

namefunction.py

#-*- coding:cp936 -*-
def get_formmed_name(first, last):
 """该函数根据姓和名生成一个完整的姓名"""
 full_name = first + ' ' + last
 return full_name.title()

然后编写了一个测试该函数的模块:

names.py

#-*- coding:cp936 -*-
from name_function import get_formmed_name
"""该文件用来测试姓名生成函数"""
print "Enter 'q' to quit any time."
while True:
 first = raw_input("\nEnter first name:")
 if first == 'q':
  break
 last = raw_input("Enter last name:")
 if last == 'q':
  break
 formatted_name = get_formmed_name(first,last)
 print "Formmated name:",formatted_name

通过测试,name_function中的函数可以实现其功能。

最后是单元测试和测试用例的编写。

test_name_function.py

# coding:utf-8
import unittest
from name_function import get_formmed_name
class NamesTestCase(unittest.TestCase):
 """测试name_function.py"""
 def test_first_last_name(self):
  """能够正确处理像Janis Joplin这样的姓名吗?"""
  formatted_name = get_formmed_name('janis','joplin')
  self.assertEqual(formatted_name,'Janis Joplin')

注意这个地方,我在Python 2.7的版本中直接调用书上的主函数unittest.main()时程序无法通过,而改用以下调用方式即可

if __name__ == '__main__':
 unittest

通过对以上单元测试模块分析:

1. 导入单元测试类unittest

2. 导入要测试的函数,本例为name_function模块中的get_formatted_name() 函数

3. 创建一个继承于unittest.TestCase的类

4. 在类中定义一系列方法对函数的行为进行不同方面的测试,需要注意的是一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python正则表达式判断字符串是否是全部小写示例
Dec 25 Python
在Python中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
在Python中使用SQLite的简单教程
Apr 29 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
python3中zip()函数使用详解
Jun 29 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
python pptx复制指定页的ppt教程
Feb 14 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
浅谈Python 中的复数问题
May 19 Python
Python3使用pandas模块读写excel操作示例
Jul 03 #Python
Python+pandas计算数据相关系数的实例
Jul 03 #Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 #Python
python设置值及NaN值处理方法
Jul 03 #Python
数据清洗--DataFrame中的空值处理方法
Jul 03 #Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 #Python
Django框架的使用教程路由请求响应的方法
Jul 03 #Python
You might like
PHP实现的功能是显示8条基色色带
2006/10/09 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
php实现的漂亮分页方法
2014/04/17 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
利用Python如何生成hash值示例详解
2017/12/20 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
Python的信号库Blinker用法详解
2020/12/31 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
语文教育专业求职信
2014/06/28 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
小学生手册家长意见
2015/06/03 职场文书