doctest 如何测试错误捕获情况
文档测试:就是在代码里用注释的方式 加入测试代码。
比如:obj.attr1 是一个不存在属性,应该报错。
我如何用文档测试方法测试判断:执行 obj.attr1 时确实如预期报错,或者合理的捕获了错误。
也就是说我要测试的不是“得到正确的结果” 而是“得到正确的报错”
以下是案例:
已下代码中 Dict 类用途只是让字典可以通过属性的方式访问如 dict.attr
下面的文档测试
代码,做了相应的测试。
文档测试的最后一行
》》》 d.f 访问了一个不存在的属性,我如何利用文档测试,可以测试程序中正确捕获了这个错误。
或者说:测试 d.f 抛出了预期的异常。把错误栈堆到这里总不好吧?
class Dict(dict):
'''
>>> d = Dict(a=1,b='bb',c='cc')
>>> d.b
'bb'
>>> d.d = "ddd"
>>> d.d
'ddd'
>>> d.f
'''
def __init__(self, **kw):
super().__init__(**kw)
def __getattr__(self, key):
try:
return self[key]
except KeyError:
raise AttributeError(r"'Dict' object has no attribute '%s'" % key)
def __setattr__(self, key, value):
self[key] = value # 给 对象增加属性。给用属性的方式来访问。
#self.key = value
if __name__=='__main__':
import doctest
doctest.testmod()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自问自答:
按照上面的编写方式即可。也就是错误的第一行输出 ... 最后一行输出 写上即可。注意不能多或者少任何字符。