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基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
Python中的 enum 模块源码详析
Jan 09 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
Python实现微信小程序支付功能
Jul 25 Python
使用Python的turtle模块画国旗
Sep 24 Python
在Sublime Editor中配置Python环境的详细教程
May 03 Python
python中round函数保留两位小数的方法
Dec 04 Python
Python Selenium库的基本使用教程
Jan 04 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 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图片上传程序
2008/03/27 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
zend framework重定向方法小结
2016/05/28 PHP
eclipse php wamp配置教程
2016/06/30 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
Javascript MD4
2006/12/20 Javascript
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
Python映射拆分操作符用法实例
2015/05/19 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python实现批量压缩图片
2018/01/25 Python
python简单区块链模拟详解
2019/07/03 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python第三方库学习笔记
2020/02/07 Python
Python表达式的优先级详解
2020/02/18 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
类如何去实现接口
2013/12/19 面试题
中学生班主任评语
2014/01/30 职场文书
现场活动策划方案
2014/08/22 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
python实现Thrift服务端的方法
2021/04/20 Python
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL