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.
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);
});