是否可以编写doctest单元测试来检查是否引发了异常?
例如,如果我有一个函数foo(x)
,如果x<0
应该引发异常,我该怎么写doctest呢?
答案 0 :(得分:74)
是。你能行的。 doctest module documentation和维基百科有example。
>>> x
Traceback (most recent call last):
...
NameError: name 'x' is not defined
答案 1 :(得分:2)
>>> import math
>>> math.log(-2)
Traceback (most recent call last):
...
ValueError: math domain error
省略号标志 #doctest:+ ELLIPSIS 不需要在Traceback doctest中使用...
答案 2 :(得分:2)
>>> scope # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
NameError: name 'scope' is not defined
不知道为什么以前的答案没有IGNORE_EXCEPTION_DETAIL。我需要它才能正常工作。 Py versioin:3.7.3。