3
Ich habe eine einfache Anwendung, sie reagieren-Router verwenden v4Testing reagieren-Router v4 mit Jest und Enzym
const App =() => (
<Switch>
<Route exact path="/" component={() => <div>Home</div>}/>
<Route path="/profile" component={() => <div>Profile</div>}/>
<Route path="/help" component={() => <div>Help</div>}/>
</Switch>
);
und Test
jest.dontMock('../App');
import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import { shallow } from 'enzyme';
import App from '../App';
describe('<App />',() => {
const wrapper = shallow(
<MemoryRouter>
<App/>
</MemoryRouter>
);
console.log(wrapper.html());
it('renders a static text',() => {
expect(
wrapper.contains(<div>Home</div>)
).toBe(true);
});
});
Meine config:
- Enzym: 2.8.2
- reagieren-Skripte: 1.0.7
- reagieren Test-Renderer: 15.5.4
Wie diese Prüfung ändern, wenn i 'contains' zu' equals' ersetzen würde? – Pavel
Es gibt https://github.com/blainekasten/enzym-matchers Bibliothek, die Ihnen erlaubt, etwas wie zu schreiben: 'expect (wrapper.find (Komponente)). ToBePresent()'. Aber Sie brauchen möglicherweise keine zusätzliche Bibliothek. Werfen Sie einen Blick auf die offizielle 'Enzym'-Dokumentation, die eine gute Erklärung für verfügbare Selektoren bietet. In Ihrem Fall etwas wie 'expect (wrapper.find (
Ich habe dies getan, aber das Problem ist, dass sie das Kind ist memoryRouter (wenn auf dem Mount) und Sie können nicht setzen, und so weiter – FabioCosta