【问题标题】:Date sensitive regression testing using python使用python的日期敏感回归测试
【发布时间】:2010-10-28 20:46:28
【问题描述】:

嘿, 我正在帮助为我们的 Python Web 应用程序设置回归测试套件。我们的许多测试都是安排样式测试,其中当前日期很重要。例如:创建一个从 2 月 1 日开始的一个月内每周运行的周期性事件。

为了测试这一点,我真正想做的是覆盖当前日期,以便我可以及时前后移动以检查应用程序的状态。例如,我可以添加一个仅测试页面,让我设置“当前”日期,该日期将传递给 python 后端并用于日期计算。

过去,当我这样做时,我从第一天起就将它设计到应用程序架构中。不幸的是,我在这个项目中来晚了,没有应用程序支持。

所以这是我的问题,有什么方法可以覆盖网络服务调用的当前日期?例如,我可以拦截当前日期的呼叫(可能是猴子补丁吗?)。我宁愿不必做整个 IOC 的事情,因为这意味着要改变数百种方法。 - 戴夫

【问题讨论】:

    标签: python date automated-tests regression-testing


    【解决方案1】:

    你可以这样做:

    from datetime import datetime
    orig_datetime_now = datetime.now
    
    datetime.now = lambda: datetime(2010, 2, 1)
    
    # tests here
    
    datetime.now = orig_datetime_now
    

    不过,在你的类上放置一个辅助方法来获取当前日期可能是一个更好的主意(因为不要搞砸第三方库等),然后像上面显示的那样做同样的猴子补丁。

    【讨论】:

      【解决方案2】:

      回答我自己的问题:

      我们目前的计划是在虚拟机上进行测试并更改虚拟机上的日期/时间。这是一个更完整的解决方案,因为它同时获取了数据库和工作线程。

      当我们开始实际操作时,我会发布一些真实世界经验的更新。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-06
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 2021-03-06
        • 1970-01-01
        • 2018-07-01
        • 1970-01-01
        相关资源
        最近更新 更多