根据反应单元测试文档:
act()
要为断言准备组件,请包装代码渲染
它并在 act() 调用中执行更新。这使得你的测试
运行起来更接近 React 在浏览器中的工作方式。
但测试在这两种情况下都运行得很好:
没有 act()
it('Should return some text', () => {
render(<TestComponent />, container);
expect(container.textContent).toBe('some text');
});
与行为()
it('Should return some text', () => {
act(() => {
render(<TestComponent />, container);
});
expect(container.textContent).toBe('some text');
})
问题是:act() 到底有什么作用,什么时候应该使用它?
来自act() https://reactjs.org/docs/testing-recipes.html#act docs:
在编写 UI 测试时,渲染、用户事件或数据获取等任务可以被视为与用户界面交互的“单元”。 React 提供了一个名为 act() 的帮助器,它确保在做出任何断言之前,与这些“单元”相关的所有更新都已被处理并应用到 DOM
进一步阅读和示例:https://github.com/mrdulin/react-act-examples/blob/master/sync.md https://github.com/mrdulin/react-act-examples/blob/master/sync.md
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)