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实现对PDF文件的OCR识别
Aug 05 Python
python函数的5种参数详解
Feb 24 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
python程序 创建多线程过程详解
Sep 23 Python
Django视图扩展类知识点详解
Oct 25 Python
基于Python中的yield表达式介绍
Nov 19 Python
python实现简单日志记录库glog的使用
Dec 13 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
Python实现照片卡通化
Dec 06 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邮件发送,php发送邮件的类
2011/03/24 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
PHP实现简易图形计算器
2020/08/28 PHP
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
python修改字典键(key)的方法
2019/08/05 Python
深入理解Python 多线程
2020/06/16 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
为什么会有内存对齐
2016/10/10 面试题
电子商务个人自荐信
2013/12/12 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
德劲DE1105机评
2022/04/05 无线电
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js