2017-05-11 2 views
0

Wie kann ich zwei einfache Aktionen in mapDispatchToProps meiner Komponente testen. Befehl für Tests, die ich verwende ist jest --coverage, und es sagt mir nächste Zeilen von meinem Code zu testen:Wie kann ich Pfeil Funktion in mapDispatchToProps von Redux von Jest testen

export const mapDispatchToProps = (dispatch) => { 
    return { 
----> rightText:() => dispatch(rightText()), 
----> leftText:() => dispatch(leftText()), 
    }; 
}; 

Wie kann ich schreiben Tests diese beiden Pfeile Funktionen innerhalb mapDispatchToProps zu decken?

Antwort

1

Ich denke, der einfachste Weg, ein Spion zu mapDispatchToProps passieren und dann können Sie die Funktionen zurückgegebene Objekt testen:

const actionProps = mapDispatchToProps(spy) 
// now you can test them 
actionProps.rightText() 
actionProps.leftText() 

rightText() und leftText() sollte ein Objekt zurückgeben (wenn es synchron ist). Sie können auch das Aktionsobjekt in Ihrem Spion überprüfen (oder es ist eine mock hier) Funktion.

const mockDispatch = jest.fn() 
const actionProps = mapDispatchToProps(mockDispatch) 
actionProps.rightText() 
actionProps.leftText() 

// now you can verify the actions here 
mockDispatch.mock.calls[0][0] 
mockDispatch.mock.calls[1][0] 

Und nur damit Sie wissen, können Sie ein einfaches Objekt connect passieren. In Ihrem Fall können Sie einfach:

connect(mapStateToProps, { 
    rightText, 
    leftText 
})(Component) 
+1

Ihre Antwort ist sehr nützlich, aber hat einen kleinen Fehler gemacht ^^ 'mockDispatch.mock.calls [0] [0]' ' mockDispatch.mock.calls [0] [ 1] ' sollte ' mockDispatch.mock.calls [0] [0] '' mockDispatch.mock.calls [1] [0] ' Thx you very much – Ahcael

Verwandte Themen