Python单元和文档测试实例详解


Posted in Python onApril 11, 2019

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

单元和文档测试

1、单元测试

单元测试就是用来对一个模块、一个函数或者一个类来进行正确性的检测工作。
1.若是单元测试通过,则证明测试的函数能够正确的工作,
2.反之则证明要么函数有bug要么输入不合法,总之我们需要修复我们的函数功能。

2、对函数进行单元测试

创建python文件MathFunc.py,内容如下:

def mySum(x,y):
  return x + y
def mySub(x,y)
  return x -y
print(mySum(1,2))

创建python文件的text01.py,内容如下:

import unittest
from MathFunc import mySum, mySub
#测试类 继承自unittest.TestCase
class Test(unittest.TestCase):
  #下面两个方法存在的意义:假设需要连接数据库,当测试完毕之后,需要断开和数据库的连接
  def setUp(self):
    print("开始测试时自动调用")
  def tearDown(self):
    print("结束时自动调用")
  #测试相应的函数
  #一般情况下,测试函数命名格式:text_需要被测试的函数名
  def test_mySum(self):
    #断言:对函数命名格式:text_需要被测试的函数名
    self.assertEqual(mySum(1,2),3,"加法有误")
  def test_mySub(self):
    self.asserEqual(mySub(2,1),1,"减法有误")
#当主程序运行的时候,开始进行单元测试
if __name__ == "__main__":
  unittest.main()

运行text01.py文件,发现正常,然后修改MathFunc.py文件中的内容,可按照下面的方式修改。

def mySum(x,y):
  return x + y + 1
def mySub(x, y):
  return x - y
print(mySub(1,2))

再次运行text01.py文件,会出现错误信息。

3、对类进行单元测试

先创建一个类文件person.py,内容如下:

class Person(object):
  #构造方法
  def __init__(self, name, age):
    #给成员变量赋值
    self.name = name
    self.age = age
  def getAge(self):
    return self.age

创建text02.py文件,进行类的单元测试,内容如下:

import unittest
from person import person
class Test(unittest.TestCase):
  def test_init(self):
    p = Person('hanmeimei',20)
    self.asserEqual(p.name,"hanmeimei","属性值有误")
  def test_getAge(self):
    p = Person('hanmeimei',22)
    self.assertEqual(p.getAge(),p.age,"getAge函数有误")
if __name__ = "__main__":
  unittest.mian()

演示,运行text02.py文件,程序正常运行,修改person.py文件中的内容,具体内容如下:

class Person(object):
  #构造方法
  def __init__(self, name, age):
    #给成员变量赋值
    self.name = name
    self.age = age
  def getAge(self):
    return self.age+1

再次运行会报错

对类的单元测试:本质上还是对方法的单元测试。

4、文档测试

文档测试的作用:可以提取注释找那个的代码执行
doctest模块可以提取注释中的代码执行
doctest严格按照python的交互模式的输入进行提取

import doctest
def mySum(x,y):
  #对函数进行功能和使用说明
  '''
  求两个数的和
  get The sum from x and y
  :param x:firstNum
  :param y:secondNum
  :return sum
  #注意有空格
  example:
  >>> print(mySum(1,2))
  3
  '''
  return x + y
print(mySum(1,2))
#进行文档测试,在当前文件中进行即可
doctest.testmod()

注意:演示的时候,主要测试

example:

>>> print(mySum(1,2))
3

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

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

Python 相关文章推荐
python脚本实现查找webshell的方法
Jul 31 Python
详解Python发送邮件实例
Jan 10 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
May 08 Python
使用Eclipse如何开发python脚本
Apr 11 Python
Python 统计字数的思路详解
May 08 Python
python如何求解两数的最大公约数
Sep 27 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
Django实现简单网页弹出警告代码
Nov 15 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
Python的高阶函数用法实例分析
Apr 11 #Python
Python2与Python3的区别实例分析
Apr 11 #Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 #Python
基于django channel实现websocket的聊天室的方法示例
Apr 11 #Python
CentOS7安装Python3的教程详解
Apr 10 #Python
django富文本编辑器的实现示例
Apr 10 #Python
详解Python:面向对象编程
Apr 10 #Python
You might like
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
js电话号码验证方法
2015/09/28 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
Java及python正则表达式详解
2017/12/27 Python
python中的随机函数random的用法示例
2018/01/27 Python
python实现教务管理系统
2018/03/12 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
Python numpy 点数组去重的实例
2018/04/18 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
贯彻学习两会心得体会范文
2014/03/17 职场文书
公司证明怎么写
2014/09/22 职场文书
2014年小学工作总结
2014/11/26 职场文书
文案策划岗位职责
2015/02/11 职场文书
自荐信格式范文
2015/03/04 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
大学班长竞选稿
2015/11/20 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python