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中几种操作字符串的方法的介绍
Apr 09 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
简单实现python画圆功能
Jan 25 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
详解python持久化文件读写
Apr 06 Python
使用django实现一个代码发布系统
Jul 18 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
OpenCV 之按位运算举例解析
Jun 19 Python
python操作ini类型配置文件的实例教程
Oct 30 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
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
vue中如何使用ztree
2018/02/06 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
如何将字串String转换成整数int
2015/02/21 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
吨的认识教学反思
2014/04/27 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
庆祝儿童节标语
2014/10/09 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
初中生活随笔
2015/08/15 职场文书
村官2015年度工作总结
2015/10/14 职场文书
创业计划书之面包店
2019/09/17 职场文书
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript