Python测试模块doctest使用解析


Posted in Python onAugust 10, 2019

面试被问到了却没有用过,很尴尬;今天看了一下,真的是一个很简单的测试模块

方便起见,这里直接拿菜鸟教程的介绍和例子过来

开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试;

doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试;

测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中;

通过用户提供的例子,它强化了文档,允许 doctest 模块确认代码的结果是否与文档一致;

def average(values):
  """Computes the arithmetic mean of a list of numbers.

  >>> print(average([20, 30, 70]))
  40.0
  """
  return sum(values) / len(values)

import doctest
doctest.testmod(verbose=True)  # doctest.testmod是测试模块,verbose默认是False,意思是出错才用提示;True,对错都有执行结果

注意格式,上边代码的第三行需要是一个空行

注:Python中的除法总是返回一个浮点数

输出结果

Trying:
  print(average([20, 30, 70]))
Expecting:
  40.0
ok
Trying:
  print(average([90, 40, 20]))
Expecting:
  50.0
ok
1 items had no tests:
  __main__
1 items passed all tests:
  2 tests in __main__.average
2 tests in 2 items.
2 passed and 0 failed.
Test passed.
[Finished in 0.5s]

可以看到16行,两个测试都通过了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python数据结构之图的实现方法
Jul 08 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
浅析Python3爬虫登录模拟
Feb 07 Python
ipython和python区别详解
Jun 26 Python
python 有效的括号的实现代码示例
Nov 11 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
python json.dumps中文乱码问题解决
Apr 01 Python
Python发送邮件实现基础解析
Aug 14 Python
linux系统下pip升级报错的解决方法
Jan 31 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
安装pytorch时报sslerror错误的解决方案
May 17 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 #Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 #Python
python实现邮件发送功能
Aug 10 #Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 #Python
python selenium登录豆瓣网过程解析
Aug 10 #Python
python matplotlib库绘制散点图例题解析
Aug 10 #Python
python matplotlib库绘制条形图练习题
Aug 10 #Python
You might like
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
php array_walk() 数组函数
2011/07/12 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
IE与FireFox中的childNodes区别
2011/10/20 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
Python爬虫工程师面试问题总结
2018/03/22 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
python线性插值解析
2020/07/05 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
2014大学生全国两会学习心得体会
2014/03/13 职场文书
国旗下的演讲稿
2014/05/08 职场文书
授权委托书
2014/09/17 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js
Hive HQL支持2种查询语句风格
2022/06/25 数据库