web-dev-qa-db-fra.com

Vérifier si le composant enfant est rendu - Jest, Enzyme

Dans mon test unitaire, je veux tester si le composant parent rend correctement son composant enfant. Voici le code:

describe('Parent Component', () => {
  it('renders Child component', () => {
    const wrapper = shallow(<Parent store={store} />);
    expect(wrapper.find(Child).length).toEqual(1);
  });
});

Parent:

const Parent = observer(({ store }) => {
  const bookList = toJS(store.planets);
  return (
    <div>
      <div className={style.planet_container}>
        {bookList.map(book => {
          return <Child key={book.name} name={book.name} />;
        })}
      </div>
    </div>
  );
});

Le code ci-dessus est tiré de ici , mais cela ne fonctionne pas. Je reçois l'erreur suivante:

Attendu 1, reçu 0 '

Où vais-je mal? J'utilise Enzyme 3.3 avec Jest 23.1.0.

6
maverick

L'enfant ne s'affiche pas car vous ne vous moquez pas correctement des accessoires (dans ce cas, l'accessoire "stocke").

Essaye ça:

it('renders Child component', () => {
  const wrapper = shallow( < Parent / > );
  wrapper.setProps({
    store: {
      planets: [{
          name: "name 1"
        }
      ]
    }
  });
  expect(wrapper.find(Child)).toHaveLength(1);
});
2
Felipe Suárez