如何在功能上测试某些事情应该在给定时间发生?

时间:2009-05-19 11:30:14

标签: testing selenium acceptance-testing

我正在编写一个包含一种计划的Web应用程序。在执行某项操作后,计划会更新,并且当用户访问该页面时会发生某些事情。

如何为这种功能编写功能(验收)测试?

我正在使用Selenium编写这些端到端测试。我唯一的想法是可以通过访问/set-fixed-time?time=...等网址强制服务器使用给定日期,然后在测试访问/set-real-time之后。

在服务器上,我会使用自定义对象来获取当前时间,并在访问其中一个URL时交换该对象。

2 个答案:

答案 0 :(得分:2)

我认为开发人员测试没问题但是验收测试应该在没有模拟的情况下完成(你的模拟代码可能有bug)。如果它必须等待3天而不是验收测试应该等待那些树日,或者他们可以通过改变服务器时间来绕过它。我认为离开后门只是为了测试是个坏主意(有些测试人员可以手工测试,而不是忘记/设置实时)。

答案 1 :(得分:0)

我同意Monkey,这最好由开发人员处理。

你也可以试试混合动力车。没有理由所有的验收测试都必须在生产站点的未经改变的模拟上运行,或者只允许使用Web界面,或者不能以管理员的身份改变或不能执行代码。您也不必更改整个服务器的时间,这是全局的,可能会产生意想不到的后果。您可以改为上次更新用户的时间。

您可以从程序中驱动Selenium,因此混合Selenium和代码测试可以使用代码设置用户“最后一次更新”数据的时间,然后执行Selenium测试以检查结果。尝试它从未运行过,就在时间用完之前,恰好在时间用完和刚刚用完之后。