【发布时间】:2008-08-15 18:43:17
【问题描述】:
是否可以编写一个doctest 单元测试来检查是否引发了异常?
例如,如果我有一个函数foo(x) 应该在x < 0 时引发异常,我将如何为此编写doctest?
【问题讨论】:
是否可以编写一个doctest 单元测试来检查是否引发了异常?
例如,如果我有一个函数foo(x) 应该在x < 0 时引发异常,我将如何为此编写doctest?
【问题讨论】:
是的。你能行的。 doctest module documentation 和维基百科有一个 example。
>>> x
Traceback (most recent call last):
...
NameError: name 'x' is not defined
【讨论】:
...
>>> scope # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
NameError: name 'scope' is not defined
不知道为什么以前的答案没有 IGNORE_EXCEPTION_DETAIL。我需要它才能工作。 Py 版本:3.7.3。
【讨论】:
... 忽略异常详细信息,就像在其他答案和文档中一样:docs.python.org/3/library/doctest.html#what-about-exceptions 我认为省略号是更易读的变体。
>>> import math
>>> math.log(-2)
Traceback (most recent call last):
...
ValueError: math domain error
省略号标志 # doctest: +ELLIPSIS 不需要在 Traceback doctest 中使用 ...
【讨论】: