说我有一个组件,呈现一个简单的div包含一个整数,从0开始,每秒钟加1。因此,5秒后,组件应呈现“5”,30秒后呈现“30”等。如果我想测试这个组件,并确保它在5秒后渲染它,我可能会写这样的东西。如何在使用jest的模拟时间之后运行断言测试?
it('should render <5> after 5 seconds',() => {
const time = mount(<Timer/>)
setTimeout(() => {
expect(time.text()).toEqual('5')
}, 5000)
})
但是,这不起作用,因为测试从未实际运行预期并且无论什么都返回通过。即使它确实有效,使用这样的超时也是非常低效的,因为测试需要等待5秒钟。而如果我想模拟更多的时间呢?在做了一些搜索之后,我发现笑话实际上有一个timer mock,但我似乎无法弄清楚如何在这种情况下实现它。任何帮助将不胜感激。谢谢!
你能分享使用定时器的模块代码吗? –