python - 如何对具有 volatile 输出的函数进行文档测试?

标签 python unit-testing docstring doctest

当 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/

相关文章:

Python 找不到自定义 PyQt5

java - 单元测试、静态和工厂

javascript - python 是否具有与 javascript 等效的函数注释?

c++ - librdkafka c++ 库是否有模拟服务器或代理?

python - 如何生成类似 numpy 的文档?

Python 在 print() 之后跳过 for 循环

python - 程序不按字母顺序将列表输出写入文件

python - 为什么中断比引发异常更快?

c# - 如何对我的对象是否真的可序列化进行单元测试?