......不知道'mock'是否是正确的词.
无论如何,我有一个继承的代码库,我正在尝试编写一些基于时间的测试.试图不要太模糊,代码与查看项目的历史并确定该项目现在是否基于时间阈值有关.
在某些时候,我还需要测试在该历史记录中添加内容并检查阈值现在是否已更改(显然,更正).
我正在测试的问题是我正在测试的部分代码是使用对time()的调用,所以我发现很难确切知道阈值时间应该是什么,基于我的事实我不确定何时会调用time()函数.
所以我的问题基本上是这样的:有没有办法让我"覆盖"time()调用,或以某种方式"模仿"时间,以便我的测试在"已知时间"工作?
或者我只是必须接受这样一个事实,即我将不得不在我正在测试的代码中执行某些操作,以某种方式允许我强制它在需要时使用特定时间?
无论哪种方式,是否有任何"常见做法"来开发对测试友好的时间敏感功能?
编辑:我的问题的一部分也是历史中发生的事情影响阈值的事实.这是我的部分问题的一个例子......
想象一下,你有一个香蕉,当你需要吃它时,你正试图解决这个问题.假设它将在3天内到期,除非它喷洒了一些化学物质,在这种情况下,我们会在施用喷雾时添加4天到期.然后,我们可以通过冻结它再添加3个月,但是如果它已经冷冻,那么我们只有1天的时间来解冻它.
所有这些规则都是由历史时间决定的.我同意我可以在几秒钟内使用Dominik的测试建议,但我的历史数据是什么?我应该在飞行中"创造"吗?
正如您可能或可能无法分辨的那样,我仍然试图了解所有这些"测试"概念;)