J'utilise l'enzyme pour tester mon composant create-react-app
, mais cela n'a pas fonctionné intuitivement. Est-ce que je ne comprends pas ce qu'est le rendu superficiel?Pourquoi le rendu superficiel ne fonctionne-t-il pas comme prévu?
import React from "react";
import { Card } from "./Card";
const TestUser =() => {
return (
<div>
<div className="test" />
<div className="wrapper">
<Card />
<Card />
<Card />
</div>
</div>
);
};
export default TestUser;
.test.js
import React from "react";
import TestUser from "./TestUser";
import { shallow } from "enzyme";
import { Card } from "./Card";
it("should render right",() => {
const component = shallow(<TestUser />);
expect(component.find(Card)).to.have.length(3);
});
Je pense qu'il devrait passer le test, parce que elle a 3 Card
composants TestUser
Mais il sortie: TypeError: Impossible de lire la propriété « ont 'de undefined
Comment cela fonctionne-t-il?
J'utilise 'create-react-app'. [enzyme doc] (http://airbnb.io/enzyme/docs/guides/jest.html), je pense que je n'ai pas besoin d'autre chose que «enzyme». Parce que déjà pré-configuré? Ai-je tort? – Liuuil
Il semble qu'ils utilisent jest pour l'assertion: https://facebook.github.io/jest/docs/expect.html#content Vous pouvez éjecter le projet en utilisant 'npm run eject' et ensuite le personnaliser. Ensuite, vous avez plus de pouvoir et de contrôle sur elle. Après cela, vous pouvez installer moka si vous le souhaitez. Je suis un fan de moka. Si vous devez aller avec Jest, vous devrez peut-être faire des recherches et résoudre le problème. –
La réponse a été mise à jour pour inclure Jest. –