我正在尝试为具有以下方法的类编写测试:
import datetime
import pytz
class MyClass:
def get_now(self, timezone):
return datetime.datetime.now(timezone)
def do_many_things(self, tz_string='Europe/London'):
tz = pytz.timezone(tz_string)
localtime_now = self.get_now(tz)
...
return things
我想测试它,为此我需要确保 datetime.datetime.now()
调用返回可预测的内容。
我已经阅读了很多在测试中使用 Mock 的示例,但没有找到任何我需要的东西,而且我不知道如何在我的测试中使用它。
我将 get_now()
方法分开,以防它更容易模拟它,而不是 datetime.datetime.now()
,但我仍然很难过。关于如何使用 Mock 为此编写单元测试有什么想法吗? (这一切都在 Django 中,fwiw;我不确定这在这种情况下是否有所不同。)
原文由 Phil Gyford 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以使用 freezegun :
它基本上
datetime
模块调用。