我有一个时差函数,该函数获取日期并计算与当前时间和返回时间的差,例如: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)