【发布时间】:2011-11-19 14:17:39
【问题描述】:
许多 Python 模块在不定义类的情况下保留内部状态,例如logging 维护着多个可通过 getLogger() 访问的记录器。
您如何测试这样的模块?
使用标准的 unittest 工具,我希望 TestCase 类中的各种测试重新导入我的模块-under-测试,以便每次它失去其上下文。这个可以吗?
【问题讨论】:
-
除了重新导入模块,这在某些情况下可能是必要的,如果你正在重置的状态很好地包含在模块的一个或几个属性中,你可以使用
mock.patch将它们模拟出来,然后将模拟替换为其他测试。
标签: python unit-testing import python-module