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之玩转字符串(1)
Sep 14 Python
利用Python演示数型数据结构的教程
Apr 03 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
Python中有趣在__call__函数
Jun 21 Python
python获取文件扩展名的方法
Jul 06 Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
Python如何根据时间序列数据作图
May 12 Python
什么是python的必选参数
Jun 21 Python
关于Python错误重试方法总结
Jan 03 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
php ZipArchive压缩函数详解实例
2013/11/06 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
twig里使用js变量的方法
2016/02/05 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
jquery中$.post()方法的简单实例
2014/02/04 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
python如何爬取网页中的文字
2020/07/28 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
团组织关系介绍信
2014/01/12 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
市场营销计划书
2015/01/17 职场文书
公司年夜饭通知
2015/04/25 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
Python基础之条件语句详解
2021/06/16 Python