【发布时间】:2019-10-22 17:38:29
【问题描述】:
我有一些方法可以利用datetime 库中的datetime.datetime.now()。我想为这些方法编写单元测试,就好像now() 是几个不同的时间(例如,每月的第 5 天,每月的第 15 天)。
比如说我有这个方法(真的只是一个例子,我没有这样的方法)
import datetime
def days_left_this_month():
return 30 - datetime.datetime.now().day
我想在该月的第 5 天测试该方法,即:days_left_this_month() == 25 如果now() 在该月的第 5 天。
最好的方法是什么?
【问题讨论】:
-
jmunsch 答案中的freezegun 看起来正是为此量身定制的。在设置函数返回值的更一般情况下,您修补函数路径并将模拟返回值设置为您在测试期间想要的值。
标签: python unit-testing testing