当 doctest 运行时, volatile 输出不同,因此测试失败。理想情况下(但不一定),解决方案应尽量避免在文档字符串之外编写可测试代码,以避免影响测试覆盖率。
from datetime import datetime
def get_now():
"""
>>> get_now()
datetime.datetime(2018, 3, 13, 20, 26, 44, 258862)
"""
return datetime.now()
最佳答案
您想要断言发生了效果,因此您应该修补日期时间并断言 now
已被调用。
这未经测试,可能不起作用,但应该说明这个想法:
from datetime import datetime
def get_now():
"""
>>> from unittest import mock
>>> my_module.datetime.now = lambda: datetime(2018, ...)
>>> get_now()
datetime.datetime(2018, ...)
"""
return datetime.now()
关于python - 如何对具有 volatile 输出的函数进行文档测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49265430/