在react-test-renderer测试中渲染玩笑快照之前运行useEffect钩子

时间:2020-02-12 22:03:31

标签: reactjs jestjs react-test-renderer

假设我具有以下称为import React, { useState, useEffect } from 'react'; export default () => { const [items, setItems] = useState([{ name: 'original' }]); useEffect(() => { setItems([{ name: 'new1' }, { name: 'new2' }]); }, []); return ( <div>{items && items.map((item, i) => <div key={i}>{item.name}</div>)}</div> ); }; 的基本组件:

import React from 'react';
import TestRenderer from 'react-test-renderer';
import Basic from './Basic';

describe('Basic', () => {
  test('renders', async done => {
    let component = TestRenderer.create(<Basic />);
    setImmediate(() => {
      expect(component.toJSON()).toMatchSnapshot();
      done();
    });
  });
});

使用react-test-renderer,我可以编写以下测试:

npm test

运行exports[`Basic renders 1`] = ` <div> <div> original </div> </div> `; 时会生成以下笑话快照:

useEffect

如何编写测试,以便运行exports[`BasicClass renders 1`] = ` <div> <div> new1 </div> <div> new2 </div> </div> `; 挂钩并反映在快照中?因此,生成的快照如下所示:

227
72
13
492

这是不可能的吗?我可以使用一个测试库来运行此挂钩吗?

0 个答案:

没有答案