问题
Using Python 2.7 I'm trying to test that the result of a particular function call is None
I would expect these tests to pass (excuse the rather silly example)
def six_or_none(val):
"""
>>> six_or_none(6)
6
>>> six_or_none(4)
None
"""
if val == 6:
return 6
return None
However they yield the following result
Failed example:
six_or_none(4)
Expected:
None
Got nothing
What's the correct way to test for None in doctests?
回答1:
The Python interpreter ignores None
return values, so doctests do the same.
Test for is None
instead:
>>> six_or_none(4) is None
True
回答2:
Other option would be a direct check for None
:
def six_or_none(val):
"""
>>> six_or_none(6)
6
>>> six_or_none(4)
"""
if val == 6:
return 6
return None
来源:https://stackoverflow.com/questions/20047519/python-doctests-test-for-none