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中map和列表推导效率比较实例分析
Jun 17 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
Jul 13 Python
一道python走迷宫算法题
Jan 22 Python
Python贪心算法实例小结
Apr 22 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
使用django的ORM框架按月统计近一年内的数据方法
Jul 18 Python
Django分页功能的实现代码详解
Jul 29 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
如何在python中实现随机选择
Nov 02 Python
Python reversed函数及使用方法解析
Mar 17 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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学习笔记之 函数声明(二)
2011/06/09 PHP
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
PHP中使用BigMap实例
2015/03/30 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
使用js实现雪花飘落效果
2013/08/26 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
vue-loader教程介绍
2017/06/14 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
Python获取系统默认字符编码的方法
2015/06/04 Python
Django的session中对于用户验证的支持
2015/07/23 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
Python 字典中的所有方法及用法
2020/06/10 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
铁路个人事迹材料
2014/01/30 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电