我freeze-time
用来运行我的 pythonunittest
测试用例。
一个虚拟测试用例:
@freeze_time('2020-01-01')
def test_something(self):
expected_output = {'time': '2020-01-01'}
output = call_tested_code()
self.assertEqual(expected_output, output)
主要代码/正在测试的代码:
GET_CURRENT_TIME = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
def call_tested_code():
return {'time': GET_CURRENT_TIME}
这是失败的,因为输出给出的是 current_date 而不是冻结日期。当它是一个 lambda 时它正在工作GET_CURRENT_TIME
,但这会导致我的代码的时间戳不同,这是我不想要的。
如果需要任何其他信息,请随时发表评论。谢谢