我正在使用Java和JSP。我必须创建具有开始日期和结束日期的促销。在开始日期和结束日期内,它将显示与促销相对应的表格;否则,它只会显示一个正常的页面。我已经根据他们打开页面的时间进行了验证。我可以通过将当前时间设置为我想要的任何时间来操纵单元测试中的时间。
然而,问题是当我想将此传递给客户端进行测试时。他们想看看促销日的情况如何?促销真的在特定时间展示吗?事后真的关闭了吗?一种可能的方法是在尝试访问页面时秘密地将当前日期作为HTTP参数传递。这样做,客户可以检查系统在特定日期的行为,但确实非常危险。知道这一点的任何人都可以随时访问促销活动。我不知道最好的办法是什么。
你的建议是什么?
答案 0 :(得分:1)
根据客户端发送的任何JSP(服务器端)代码,这听起来是个坏主意。处理这个完全服务器端并且有一些方法来配置您和您的客户端可以进行测试的时间会好得多。
1)如果客户真的担心(或者您的应用程序很复杂) - 可能合理地进行此类测试的唯一方法是按照Nathan Hoad的评论建议更改服务器时间。所有其他测试都充满信心,因为它依赖于除了时间滴答之外的某些东西并“触发”促销开始或结束。还要记住促销期间发生的活动 - 他们是使用系统时间做出决定还是将日期/时间存储在数据库中等?
2)如果#1不是真正的问题,我会让你的代码检查你的代码中调用自定义函数的时间(触发促销)(例如getCustomTime()
)。该方法默认返回系统时间,但也检查是否已配置偏移量并使用该方法来抵消实际时间。可以动态配置偏移量。
答案 1 :(得分:0)
首先,您不应将此功能放在实时生产服务器上,因此不应发生“非常危险”的曝光。
我会尝试“腰带和括号”的方法:
客户端可以访问演示框并检查一切是否完美。当他们满意时,您将部署到生产环境,但禁用“演示模式”,因此只有“时间敏感”的访问促销方式才有效。
答案 2 :(得分:0)
您无需调整服务器上的时间来向客户端演示此操作。只需在系统中有一个已过期的促销,一个当前处于活动状态的促销活动,另一个促销活动将在三个不同的项目上展示,并向客户显示效果。
或者,或者在演示期间创建一个在将来一分钟后生效的促销,持续2-3分钟然后过期,然后通过它进行说话并点击并向他们展示效果。