datetime - 如何在长生不老药中模拟当前时间
问题描述
我有一些取决于当前时间的测试,到目前为止还没有找到解决方案。我尝试了一些模拟库,mock
但它模拟了整个模块并且失败了。任何帮助将不胜感激(如果我只嘲笑DateTime.utc_now
一切都可以)
注意:测试在很大程度上取决于其他DateTime
和Date
功能,因此模拟整个模块不是一个很好的选择(我也尝试过,但由于非常复杂的情况而失败,我在许多测试中都需要这个)
实际测试:我有两个日期,start date
作为end date
我要测试的函数的输入。在为测试目的调用该函数之前,我插入了一些与当前周相关的数据(当前 dat 到接下来的 7 天)。现在该函数将获取当前日期时间并检查特定日期(每条记录将告诉它是否适用于一周中的当前日期以及正在迭代的当前时间段范围 -> 开始和结束日期)。例如,一条记录申请mon
-> 2:12 到 3:13
解决方案
最适合我需要的解决方案(简单,效果很好并且根据上述要求)是:
定义您自己的功能/服务
MyDateTime.utc_now/0
并在您的测试中模拟它。—参考。
推荐阅读
- spring - Component-Scan 和 @Component 之间的区别?
- d3.js - D3:在和弦图中附加名称
- c - 为什么这个指针 Typedef'd 指向一个结构
- ruby - 无法在ruby中访问类之外的继承方法
- azure - Azure Service Fabric 可靠集合的并发安全旋转
- javascript - 为什么必须使用关键字“this”而不是类名?
- vba - 删除可变数量列中的重复项
- android - 无法在 Android NDK 中使用 C++ 静态变量
- c++ - 为什么我第二次尝试将我的 JSON 更改为字符串不起作用(即使我有 breakpts 或 getchar,输出窗口也不会显示)?
- python - 量化神经网络python的预测质量