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绘图库Matplotlib的安装
Jul 03 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
python去掉空白行的多种实现代码
Mar 19 Python
Python批量发送post请求的实现代码
May 05 Python
python最长回文串算法
Jun 04 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
Python变量作用域LEGB用法解析
Feb 04 Python
python中with用法讲解
Feb 07 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
python如何处理程序无法打开
Jun 16 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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
php操作JSON格式数据的实现代码
2011/12/24 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
javascript this用法小结
2008/12/19 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
jquery处理json对象
2014/11/03 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
详解Python中where()函数的用法
2018/03/27 Python
Python日期时间Time模块实例详解
2019/04/15 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
python支付宝支付示例详解
2019/08/22 Python
中学教师实习自我鉴定
2013/09/28 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
办公室主任个人总结
2015/02/28 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js