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
python类继承用法实例分析
Oct 10 Python
python模块之StringIO使用示例
Apr 08 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
对python抓取需要登录网站数据的方法详解
May 21 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
Python中断多重循环的思路总结
Oct 04 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
aws 通过boto3 python脚本打pach的实现方法
May 10 Python
keras slice layer 层实现方式
Jun 11 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
用cookies来跟踪识别用户
2006/10/09 PHP
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
js实现简易计算器功能
2019/10/18 Javascript
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
Python如何读取文件中图片格式
2020/01/13 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
草船借箭教学反思
2014/02/03 职场文书
行政办公室岗位职责
2014/03/18 职场文书
党员创先争优承诺书
2014/03/26 职场文书
大学生工作自荐书
2014/06/16 职场文书
购房意向书
2014/08/30 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2019销售早会主持词
2019/06/27 职场文书
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
Python中npy和mat文件的保存与读取
2022/04/24 Python