2017-08-30 1 views
0

Ich bin neu & Redux zu reagieren und ich habe mehrere Funktionen in einem Modul, das ich gerade arbeite,Wie verstehen und diese Einheit Test mit Jest React-Redux Funktion

function showDialogAction(): Action { 
    return { 
     type : SHOW_DIALOG 
    }; 
} 

function showDialog() { 
    return (dispatch : (action : Action) => void) => { 
     dispatch(showDialogAction()); 
    }; 
} 

Now I müssen einen Komponententest für showDialog() Funktion schreiben. Trotzdem fällt es mir schwer zu verstehen, was genau das ist. Ist es returning a function that accepts Action and returns void ?? Or ...

Wirklich zu schätzen, wenn jemand erklären kann, wie es funktioniert und irgendwelche Vorschläge, es zu testen.

Antwort

2

Es gibt eine Funktion zurück, die die Funktion dispatch als Parameter erhält und sie mit dem Ergebnis showDialogAction aufruft.

So in Formen der Typen dispatch : (action : Action) => void gibt es dispatch, die eine Funktion ist ()=>, die einen Parameter action erhalten, die vom Typ ist Action (action : Action) und gibt nichts zurück (void)

Der einfachste Weg, dies zu testen benutzt einen Spion für dispatch:

const dispatch = jest.fn() 
showDialog()(dispatch) 
expect(dispatch).toHaveBeenCalledWith({type : 'SHOW_DIALOG'}) 
+0

Vielen Dank für die Erklärung. Können Sie bitte erklären, was ist "Versand: (Aktion: Aktion) => ungültig", Warum gibt es "Aktion: Aktion"? Kann aktualisiert werden die Antwort – prime

+1

Aktualisiert mit einer Erklärung des Typs –

+0

Got it. (Y) nette Erklärung, danke :) – prime