Python单元测试与测试用例简析


Posted in Python onNovember 09, 2019

本文实例讲述了Python单元测试与测试用例。分享给大家供大家参考,具体如下:

单元测试与测试用例

简介

测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求

要为函数编写测试用例,可先导入模块 unittest 以及要测试的函数,再创建一个继承unittest.TestCase 的类,并编写一系列方法对函数行为的不同方面进行测试

创建实例(对比接收到的名和姓是否符合要求)

1.先创建个name_function.py的文件(文件名称可以另取),接收名和姓并返回整洁的全名

def get_formatted_name(first,last,middle=''):
  '''生成整洁的姓名'''
  if middle:
    full_name=first+' '+middle+' '+last
  else:
    full_name=first+' '+last
  return full_name.title()

2.再创建个test_name_function.py的文件,检查name_function.py()在给定名和姓时能否正确地工作

import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
  """测试name_function.py"""
  def test_first_last_name(self):
    """能够正确处理姓名么?"""
    formatted_name = get_formatted_name('liu','wei' )
    self.assertEquals(formatted_name, 'Liu Wei')
unittest.main()

上述代码思路:

  1. 导入模块 unittest 和要测试的函数 get_formatted_name()
  2. 创建一个名为 NamesTestCase 的类(类的命名可任取,但最好让它看起来与要测试的函数相关,并包含字样Test),用于包含一系列针对get_formatted_name()的单元测试。这个类必须继承unittest.TestCase,这样Python才知道如何运行你编写的测试
  3. NamesTestCase只包含一个方法,我将这个方法命名为test_first_last_name(),我们运行test_name_function.py 时,所有以test_打头的方法都将自动运行。在这个示例中,使用了实参‘liu'和‘wei'调用get_formatted_name(),并将结果存储到变量 formatted_name
  4. assertEquals()unittest类最有用的功能之一:一个断言方法。断言方法用来核实得到的结果与期望的结果一致。self.assertEquals(formatted_name, 'Liu Wei') 的意思是:将formatted_name 的值同字符串 'Liu Wei'进行比较
  5. 代码行unittest.main()让Python运行这个文件中的测试。

运行结果如下:

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

第1句的句点表明有一个测试通过。接下来的一行指出Python运行了一个测试,消耗的时间不到0.001秒。最后的OK表明该测试用例中的所有单元测试都通过了。

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
Python模拟登录验证码(代码简单)
Feb 06 Python
python将ansible配置转为json格式实例代码
May 15 Python
Python求出0~100以内的所有素数
Jan 23 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
django实现支付宝支付实例讲解
Oct 17 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
python开发人人对战的五子棋小游戏
May 02 Python
python自动化测试之异常及日志操作实例分析
Nov 09 #Python
Python多线程模块Threading用法示例小结
Nov 09 #Python
Python for循环及基础用法详解
Nov 08 #Python
python常用排序算法的实现代码
Nov 08 #Python
python分布式编程实现过程解析
Nov 08 #Python
详解mac python+selenium+Chrome 简单案例
Nov 08 #Python
python manage.py runserver流程解析
Nov 08 #Python
You might like
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python3获取cookie常用三种方案
2020/10/05 Python
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
行政总经理岗位职责
2013/12/05 职场文书
高中化学教学反思
2014/01/13 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
小学校长汇报材料
2014/08/20 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
爱国影片观后感
2015/06/18 职场文书
装修公司管理制度
2015/08/05 职场文书
小学数学国培研修日志
2015/11/13 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
快速学习Oracle触发器和游标
2021/06/30 Oracle