【发布时间】:2019-08-28 08:53:20
【问题描述】:
我有一个时差函数,它获取 日期 并计算它与当前时间的差异并返回时间差异,例如:
4 days ago
现在,我在一个带有单元测试和快照测试的网页上使用了这个功能。
快照测试每天都会失败,因为明天差异将是5 days ago
在这种情况下我该怎么办?
更新:放上我的伪代码
const timeDiff = gTime => {
return (currentTime - gtime)
};
此函数将在我的网页、组件、评论部分和...中调用 所以我所有组件的快照测试都会失败。
【问题讨论】:
-
您没有根据实际时间进行测试。时间是一个依赖。
-
@jonrsharpe 是的,时间是一个依赖项,但此功能在我的评论组件和其他组件上,导致对包含此时间差异功能的所有页面进行快照测试失败。
-
那么您没有正确处理该依赖关系。同样,不要根据实际时间进行测试。
-
但是您可以将其替换为测试替身,或者如以下答案所示,模拟时间本身。
-
这对说明任何事情有何帮助?
currentTime来自哪里?为什么不能为了测试目的更换它?为什么在测试组件时不能完全替换timeDiff?
标签: javascript reactjs testing snapshot