Reactjs 何时在jest单元测试中使用act()和react dom
根据react单元测试文件: act() 要为断言准备组件,请包装代码 它可以在act()调用中执行更新。这使你的测试更容易 运行更接近于React在浏览器中的工作方式 但在这两种情况下,测试都运行良好: 无行为Reactjs 何时在jest单元测试中使用act()和react dom,reactjs,unit-testing,jestjs,react-dom,Reactjs,Unit Testing,Jestjs,React Dom,根据react单元测试文件: act() 要为断言准备组件,请包装代码 它可以在act()调用中执行更新。这使你的测试更容易 运行更接近于React在浏览器中的工作方式 但在这两种情况下,测试都运行良好: 无行为 it('应该返回一些文本',()=>{ 渲染(,容器); expect(container.textContent).toBe('sometext'); }); 与act()一起 it('应该返回一些文本',()=>{ 行动(()=>{ 渲染(,容器); }); expect(con
it('应该返回一些文本',()=>{
渲染(,容器);
expect(container.textContent).toBe('sometext');
});
与act()一起
it('应该返回一些文本',()=>{
行动(()=>{
渲染(,容器);
});
expect(container.textContent).toBe('sometext');
})
问题是:act()到底做什么,什么时候应该使用它?来自文档:
编写UI测试时,渲染、用户事件或数据获取等任务可以被视为与用户界面交互的“单元”。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');
})