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内置函数Type()函数一个有趣的用法
Feb 18 Python
Python中list列表的一些进阶使用方法介绍
Aug 15 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
Django与JS交互的示例代码
Aug 23 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
Python2和Python3.6环境解决共存问题
Nov 09 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
详解python3中zipfile模块用法
2018/06/18 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
序列化Python对象的方法
2020/08/01 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
二手车交易协议书标准版
2014/11/16 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
党员学习型组织心得体会
2019/06/21 职场文书