73

是否可以编写一个doctest单元测试来检查是否引发了异常?
例如,如果我有一个foo(x)应该引发异常 if 的函数,x < 0我将如何为此编写doctest

4

3 回答 3

97

是的。你能行的。doctest 模块文档和维基百科有一个例子

   >>> x
   Traceback (most recent call last):
     ...
   NameError: name 'x' is not defined
于 2008-08-15T19:04:13.093 回答
9
>>> scope # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
NameError: name 'scope' is not defined

不知道为什么以前的答案没有IGNORE_EXCEPTION_DETAIL。我需要它才能工作。Py 版本:3.7.3。

于 2020-08-22T17:56:22.767 回答
5
>>> import math
>>> math.log(-2)
Traceback (most recent call last):
 ...
ValueError: math domain error

ellipsis flag # doctest: +ELLIPSIS is not required to use ... in Traceback doctest

于 2015-11-18T18:22:25.677 回答