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(一)Python环境安装
Aug 20 Python
python使用arp欺骗伪造网关的方法
Apr 24 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
使用Python对MySQL数据操作
Apr 06 Python
基于python爬虫数据处理(详解)
Jun 10 Python
使用Python的Django和layim实现即时通讯的方法
May 25 Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
解决paramiko执行命令超时的问题
Apr 16 Python
Python 生成短8位唯一id实战教程
Jan 13 Python
Python的Tqdm模块实现进度条配置
Feb 24 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
Django自定义分页与bootstrap分页结合
2021/02/22 Python
python使用fork实现守护进程的方法
2017/11/16 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
python二维键值数组生成转json的例子
2019/12/06 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
银行会计财务工作个人的自我评价
2013/10/29 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
爱国演讲稿400字
2014/05/07 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
高一军训决心书
2015/02/05 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers