使用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的正确方法是什么?
答案 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