我正在编写一个包含一种时间表的 Web 应用程序。在某个操作之后,计划会更新,当用户访问该页面时会发生一些事情。
任何想法如何为这种功能编写功能(验收)测试?
我正在使用 Selenium 编写这些端到端测试。我唯一的想法是可以通过访问 URL 来强制服务器使用给定日期/set-fixed-time?time=...
,然后在测试访问之后/set-real-time
。
在服务器上,我将使用自定义对象来获取当前时间,并且在访问其中一个 URL 时交换该对象。
我正在编写一个包含一种时间表的 Web 应用程序。在某个操作之后,计划会更新,当用户访问该页面时会发生一些事情。
任何想法如何为这种功能编写功能(验收)测试?
我正在使用 Selenium 编写这些端到端测试。我唯一的想法是可以通过访问 URL 来强制服务器使用给定日期/set-fixed-time?time=...
,然后在测试访问之后/set-real-time
。
在服务器上,我将使用自定义对象来获取当前时间,并且在访问其中一个 URL 时交换该对象。
我认为它可以用于开发人员测试,但是验收测试应该在没有模拟的情况下完成(你的模拟代码中可能有错误)。如果它必须等待 3 天而不是验收测试应该等待那些树天,否则他们可以通过更改服务器时间来绕过它。我认为留下后门只是为了测试是个坏主意(一些测试人员可以手动测试它而不是忘记 /set-real-time)。
我同意猴子,这最好由开发人员处理。
您也可以尝试混合动力车。没有理由您的所有验收测试都必须在未更改的生产站点模拟上运行,或者只允许使用 Web 界面,或者不能以管理员身份更改内容或无法执行代码。您也不必更改整个服务器的时间,这是全球性的,可能会产生意想不到的后果。您可以改为更改用户上次更新的时间。
您可以从程序中驱动 Selenium,因此混合 Selenium 和代码测试可以使用代码设置用户的“上次更新时间是什么时候”数据,然后执行 Selenium 测试以检查结果。在它从未运行过时尝试它,就在时间用完之前,恰好在时间用完时和之后。