Python doctests:测试无

时间:2013-11-18 12:12:04

标签: python doctest

使用Python 2.7我试图测试特定函数调用的结果是无

我希望这些测试能够通过(原谅相当愚蠢的例子)

def six_or_none(val):
    """
    >>> six_or_none(6)
    6
    >>> six_or_none(4)
    None
    """
    if val == 6:
        return 6
    return None

然而,他们产生以下结果

Failed example:
    six_or_none(4)
Expected:
    None
Got nothing

在doctests中测试None的正确方法是什么?

3 个答案:

答案 0 :(得分:37)

Python解释器忽略 None返回值,因此doctests也会这样做。

测试is None

>>> six_or_none(4) is None
True

答案 1 :(得分:4)

其他选项是直接检查None

def six_or_none(val):
    """
    >>> six_or_none(6)
    6
    >>> six_or_none(4)
    """
    if val == 6:
        return 6
    return None

答案 2 :(得分:0)

如果您希望文档中的内容看起来像您期望的那样,另一种选择是:

>>> print(six_or_none(4))
None