2017-04-21 4 views
3

Wie void JavaScript-Funktion (eine Funktion, die nichts zurückgibt) Test jest Rahmen testen? Kannst du bitte ein Beispiel dafür geben?Wie void Javascript-Funktionen mit Jest testen?

+0

Beste Sie Ihren Titel –

+2

Test google, was sie zurückkommen? sie kehren 'undefiniert' zurück? –

+3

Eine Funktion, die keinen Wert zurückgibt, muss Nebenwirkungen haben oder es ist sinnlos; Nebeneffekte wie das Ändern des Status eines Objekts, das an es übergeben wird, oder das Ausführen von Aktionen in der Umgebung. Wenn die Funktion nicht sinnlos ist, testen Sie auf ihre Nebenwirkungen. Wenn Sie tatsächliche Beispiele geben würden, wäre es viel einfacher, Ihnen zu helfen. –

Antwort

3

Der beste Weg, um eine void-Funktion zu testen, ist, das Verhalten seiner Abhängigkeiten zu verspotten.

// module being tested 
import sideEffect from 'some-module'; 

export default function() { 
    sideEffect(); 
} 

Mit Datei spöttischen und Funktion Erwartungen, können Sie behaupten, dass die Funktion das andere Modul als erwartet genannt:

import hasSideEffect from './hasSideEffect'; 
import sideEffect from 'some-module'; 

jest.mock('some-module'); 

test('calls sideEffect',() => { 
    hasSideEffect(); 

    expect(sideEffect).toHaveBeenCalledTimes(1); 
    expect(sideEffect).toHaveBeenCalledWith(); 
}); 
Verwandte Themen