具有时间戳的函数的Python单元测试

时间:2018-09-11 04:11:32

标签: python unit-testing datetime assertion

在对输出时间戳并在其上说出主机名以及其他值的功能的单元测试中。在单元测试中,如果我在预期输出中添加一些时间戳和主机名,它将失败,因为每次调用该函数时函数的时间戳都会更改,并且每次在不同的机器上运行时主机名都会更改。解决方法是什么?非常感谢您的投入。

函数输出

{'datetime': '09-10-2018 23:23:23', 'hostname': 'abc.xyz.com',...}
# and it can change every time we run it

但是此日期时间和主机名会根据时间(当然是机器)而变化

我认为我将在单元测试中使用assert_Equal或assertDictEqual的预期输出:

{'datetime': '09-10-2018 23:23:23', 'hostname': 'abc.xyz.com',...}

是否有其他断言检查更适合这种情况?

1 个答案:

答案 0 :(得分:1)

无论发生在何处,都应模拟var id =localstorage.datafield调用,以使创建日期时间始终是您可以在测试期间断言的某个固定值。

这是一个常见要求,因此已经有一些库支持-我可以推荐freezegun

datetime.now()