【问题标题】:Can you check that an exception is thrown with doctest in Python?你能检查一下 Python 中的 doctest 是否引发了异常吗?
【发布时间】:2008-08-15 18:43:17
【问题描述】:

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

【问题讨论】:

    标签: python doctest


    【解决方案1】:

    是的。你能行的。 doctest module documentation 和维基百科有一个 example

       >>> x
       Traceback (most recent call last):
         ...
       NameError: name 'x' is not defined
    

    【讨论】:

    • 不需要...
    【解决方案2】:
    >>> scope # doctest: +IGNORE_EXCEPTION_DETAIL
    Traceback (most recent call last):
    NameError: name 'scope' is not defined
    

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

    【讨论】:

    【解决方案3】:
    >>> import math
    >>> math.log(-2)
    Traceback (most recent call last):
     ...
    ValueError: math domain error
    

    省略号标志 # doctest: +ELLIPSIS 不需要在 Traceback doctest 中使用 ...

    【讨论】:

    • 你是说我们可以省略省略号吗?根据答案,尚不清楚我们是否可以或如何做到这一点。如果可以,您能否编辑您的答案以使其更清楚?这将非常有用。谢谢。
    • 你不需要省略号
    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 2013-12-20
    • 2017-07-21
    • 2011-04-10
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多