2017-01-05 4 views
1

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

Antwort

0

ich es einfach mal googlen und ich finde den Link

http://paulsturgess.co.uk/blog/2016/11/06/how-to-write-and-test-a-redux-container-component-for-react/

Sie wissen nicht, ob Werke .. ich den Laden in der Regel spotten und nicht Provider verwenden. ..

+1

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

Verwandte Themen