Python标准库 doctest 可以搜索程序中类似于交互式Python代码的文本片段,并运行这些交互式代码来验证是否符合预期结果和功能,常用于Python程序的模块测试。

  使用doctest模块测试Python代码。

下面的代码演示了doctest模块的用法,定义了一个函数,预期功能为可对整数或实数相加,或连接两个字符串、列表、元组,或对两个集合求并集,并返回结果。

 def add(value1,value2):
#下面三个引号之间是测试代码,doctest会搜索这些代码并执行
#并且根据执行结果与预期结果匹配程度来测试代码是否正确
'''
return the addition of two numbers or the concatenation of two string/list/tuple
>>> add(3,5)
8
>>> add(3.0,5.0)
8.0
>>> add([1,2],[3,4])
[1,2,3,4]
>>> add((1,),(2,3,4))
(1,2,3,4)
>>> add(1,[3])
TypeError
>>> add(1,'2')
TypeError
>>> add([1],(2))
TypeError
>>> add('1234',[1,2,3,4])
TypeError
>>> add({1,2,3},{3,4,5})
{1,2,3,4,5}
>>> add({1:1},{2:2})
TypeError
''' #下面是正式的功能代码
if type(value1) not in (int,float,str,list,tuple,set):
raise TypeError('value1 and value2 must be the type of int,float,str,list,tuple,or set') if type(value1) != type(value2):
raise TypeError('value1 and value2 must be of the same type') if type(value1) == set:
return value1 | value2
else:
return value1 + value2 if __name__ == '__main__':
import doctest
doctest.testmod()
print(add(3,5))

把上面的代码保存成Python程序文件doctest_demo.py,在IDLE中直接运行,如果函数功能完全符合预期功能要求就会输出正确的结果,如果有不符合预期结果的代码就会给出相应的提示。在命令行提示符环境中使用-v参数的方式执行,可以看到详细的测试过程。

最新文章

  1. Android开发学习—— activity
  2. kubernetes&tensorflow
  3. 面试题:给定数组a,找到最大的j-i, 使a[j]>a[i]
  4. WCF中常用的binding方式
  5. Tomcat的Session管理机制
  6. ectouch第五讲 之表
  7. While readingiphone真机无法显示图片,而模拟器可以正常显示
  8. HDU 4608 I-number(模拟)
  9. 如何在一整张背景图中,加隐形的a标签
  10. MySQL mysqlimport 从txt文件中导入数据到mysql数据库
  11. Android 使用 intent 实现简单登陆页面
  12. mui底部导航栏切换分页
  13. 微信小程序小结
  14. Skyline 7 版本TerraExplorer Pro二次开发快速入门
  15. iOS 系统通知
  16. python实现线性排序-基数排序
  17. 19 个必须知道的 Visual Studio 快捷键
  18. Python之函数&参数&参数解构
  19. windows迁移linux问题集锦
  20. Java 时间类

热门文章

  1. hibernate字段名和属性
  2. Finding Nemo(搜索)
  3. mysql大数据的分表
  4. SpringBoot集成Redis来实现缓存技术方案
  5. [Apple开发者帐户帮助]八、管理档案(4)
  6. python - list 列表推导式
  7. Django基于JWT实现微信小程序的登录和鉴权
  8. BZOJ 5277 IQ题orz
  9. ACM_小Z的A+B
  10. 卸载Mysql connect 6.9.9