Ich bin Schnappschuss, der meine React App mit Jest und Enzym prüft. Ich versuche, eine testbare Version meiner Komponente zu exportieren, die nicht in einer Komponente höherer Ordnung enthalten ist.Enzym rendert eingewickelte Komponente eher als Grundbestandteil
Ich möchte dann die umschlossene Komponente exportieren, damit meine App sie verwenden kann, und auch eine testbare Version, d. H. Eine nicht umwickelte Version meiner Komponente.
Dies ist meine Komponente:
NavBar.jsx
const NavBar = ({props}) => {(
<div>...</div>
)}
export { NavBar as TestableNavBar };
export default withStyles(styles)(NavBar);
NavBar.test.js
import React from 'react';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
import { TestableNavBar } from './NavBar';
const props = {
...
};
describe('Navbar',() => {
it('should render correctly',() => {
const wrapper = shallow(<TestableNavBar {...props} />);
const tree = toJson(wrapper);
expect(tree).toMatchSnapshot();
});
});
Die oben einen Schnappschuss erzeugt, der wie folgt aussieht:
<div>
<withStyles(AppBar)
className=""
>
<withStyles(Toolbar)
disableGutters={true}
>
<withStyles(IconButton)
aria-label="open drawer"
className=""
color="contrast"
onClick={[Function]}
>
...
</div>
Ich kann nicht wirklich verstehen, warum es immer noch versucht, die HOC zu rendern?
Sind Sie sicher, ist es wirklich die HOC Rendering? Das erste gerenderte Element ist ein 'div', wie im' NavBar' Rückgabewert deklariert. –
@toomuchdesign wahr. Aber dann hast du alle '' was mir etwas verwirrend erscheint. Warum sind die hier? Und nebenbei, die Ausgabe von diesem Test ist die gleiche wie wenn ich die Standard-exportierte NavBar –
Chris