如何在Django中测试与时间相关的函数?

时间:2011-03-29 09:42:17

标签: django testing selenium

我正在编写一个记录事件时间的应用程序。对于单元测试,我通常会使用猴子补丁来替换假datetime.time,以便我可以正确测试它。我正在尝试使用Selenium进行端到端测试,将测试用例放在单独的程序中,而不是使用python manage.py test。所以我不能做补丁。我确实尝试过使用manage.py,但似乎没什么帮助。

我确定这是一个已解决的问题。我应该怎么做? Selenium不适合进行此类测试吗?我错过了如何让测试用例与应用程序通信吗?

1 个答案:

答案 0 :(得分:1)

Selenium与一个完整的网络服务器进行对话,无法访问在该网络服务器内运行的python解释器。即使您使用python编写SeleniumRC脚本,解释器的脚本实例也与Web服务器实例分开。

如果您通过manage.py runserver运行测试Web服务器,则可以编写自己的管理命令,将“runserver”替换为修复datetime.time的版本。这并不容易,因此您可以考虑修改Selenium驱动的测试以应对实时发生的事件,或者将时间敏感的测试转换为django客户端测试,以便您可以使用模拟库。