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中无限元素列表的实现方法
Aug 18 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
Python批量修改文本文件内容的方法
Apr 29 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
flask框架实现连接sqlite3数据库的方法分析
Jul 16 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Python创建临时文件和文件夹
Aug 05 Python
10张动图学会python循环与递归问题
Feb 06 Python
Flask response响应的具体使用
Jul 15 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
Protoss建筑一览
2020/03/14 星际争霸
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python 正则表达式入门(初级篇)
2016/12/07 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
flask实现验证码并验证功能
2019/12/05 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
工作求职信
2014/07/04 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书