我有一个使用计时器定期调用函数的组件。从外面我可以配置该计时器的费率。
测试这个基本上是微不足道的:设置计时器,等待一段时间,计算对函数的调用,并与你的预期进行比较。
现在还可以选择禁用计时器。我怎么能测试呢?
等待时间x是不够的,因为计时器可能会在x + 1处调用。
有更好的方法吗?
答案 0 :(得分:1)
不要尝试测试您的语言功能。如果js为您提供方法setInterval
,那么假设它有效。如果您的代码正确调用setInterval
,您应该测试什么。我不太了解js测试,但如果可以,只需模拟它并检查它是否被调用。如果你不能嘲笑它,那么再使用一个间接层。为计时器创建自己的包装器 - 没有任何逻辑,只需传递调用。然后,在测试中,您可以检查是否调用了该包装器。我会避免在测试中使用等待/睡眠