我有一个时差函数,该函数获取日期并计算与当前时间和返回时间的差,例如:

4 days ago

现在,我在带有一些单元测试和快照测试的网页上使用了此功能。
快照测试每天都会失败,因为明天差异将是5 days ago

在这种情况下我该怎么办?

更新:把我的伪代码

const timeDiff = gTime => {
    return (currentTime - gtime)
};


此功能将在我的网页,组件,评论部分和...中调用
因此我所有组件的快照测试都将失败。

最佳答案

您可能有2个选择:

1-考虑是否有空输入(或类似的输入),在这种情况下,组件将返回什么,因此,通过更改函数,可以为函数提供空输入并期望获得预期的结果。

const timeDiff = gTime => {
    if(!gTime) return "";
    return (currentTime - gtime)  };

// ------------test---------------

timeDiff(null)


2-提供一个将返回预期结果的输入,例如,在您的方案中,您可以将当前时间作为输入(作为模拟数据),这样每次您得到的结果都会有0秒的差异。

const timeDiff = gTime => {
    return (currentTime - gtime)
};

// ------------test---------------

mockData = getCurrentTime()
timeDiff(mockData)

10-02 16:52