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语言的优雅之处
Jul 04 Python
为Python的web框架编写前端模版的教程
Apr 30 Python
python中assert用法实例分析
Apr 30 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
Python操作MySQL模拟银行转账
Mar 12 Python
python实现归并排序算法
Nov 22 Python
Django 外键的使用方法详解
Jul 19 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
pytorch标签转onehot形式实例
Jan 02 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
python 基于wx实现音乐播放
Nov 24 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 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产生动态的影像图
2006/10/09 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
JQuery 入门实例1
2009/06/25 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
js运算符的一些特殊用法
2018/07/29 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
django主动抛出403异常的方法详解
2019/01/04 Python
python中的协程深入理解
2019/06/10 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
医护人员英文求职信范文
2013/11/26 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
四年级语文教学反思
2014/02/05 职场文书
规划编制实施方案
2014/03/15 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
SQL语句多表联合查询的方法示例
2022/04/18 MySQL
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技