Dies ist ein bisschen wie ein Followup zu Nested components testing with Enzyme inside of React & Redux ist ...Testing verschachtelt reagieren Komponenten mit Enzym
Ich habe eine Komponente, die ich brauche auf Requisiten und Methoden zu testen. Allerdings muss diese Komponente in einem Anbieter gemacht, um zu arbeiten:
const renderComponent = (props) => {
<Provider store={ createStore(reducer, initialState) }>
<ChildComponent { ...props }/>
</Provider>
};
Meine Frage ist, wie kann ich testen Methoden auf dieser Komponente jetzt? Dies funktioniert nicht:
it('can call its own methods',()=> {
const wrapper = mount(renderComponent(defaultProps)).find('ChildComponent');
wrapper.instance().call('someMethod'); // returns Error: ReactWrapper::instance() can only be called on the root
});
Sie müssen nicht Provider verwenden. Fügen Sie einfach einen zusätzlichen 'Export' am Ende der Komponentendatei mit nur der Komponente hinzu (d. H. NICHT mit Redux verbunden). 'export default connect (...) (MeineKomponente);' 'export {MyComponent};' Importieren Sie dann mit 'import {MyComponent} aus '...';' – nbkhope