7.2.1 代码测试 doctest
2024-08-24 09:19:27
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参数的方式执行,可以看到详细的测试过程。
最新文章
- Android开发学习—— activity
- kubernetes&;tensorflow
- 面试题:给定数组a,找到最大的j-i, 使a[j]>;a[i]
- WCF中常用的binding方式
- Tomcat的Session管理机制
- ectouch第五讲 之表
- While readingiphone真机无法显示图片,而模拟器可以正常显示
- HDU 4608 I-number(模拟)
- 如何在一整张背景图中,加隐形的a标签
- MySQL mysqlimport 从txt文件中导入数据到mysql数据库
- Android 使用 intent 实现简单登陆页面
- mui底部导航栏切换分页
- 微信小程序小结
- Skyline 7 版本TerraExplorer Pro二次开发快速入门
- iOS 系统通知
- python实现线性排序-基数排序
- 19 个必须知道的 Visual Studio 快捷键
- Python之函数&;参数&;参数解构
- windows迁移linux问题集锦
- Java 时间类