Nachdem ich eine Menge Forschung getan habe, kann ich keinen Weg finden, Funktionen zu verspotten, die ohne Elternobjekt exportiert werden. Zum Beispiel, um Mock-Funktionen Ich versuche, exportiert die folgende Art und Weise:Jasmine Spy-Funktion exportiert ohne Elternobjekt und importiert mit ES6 in NODE
module.exports = function thing(event) {};
OR in ES6
export function thing(event) {};
Wenn diese in eine Testdatei importieren ich versuchen, wie diese importieren:
import {thing} from 'emvio-util-responses;
//call some function that calls thing()
spyOn(???, 'thing').and.returnValue({});
expect(???.thing).toHaveBeenCalled();
Ich habe viele Möglichkeiten versucht, dies zu erreichen, aber der Schein wird nicht genannt. Einige schlagen vor, * zu importieren und einen Alias als übergeordnetes Objekt anzugeben. wie folgt:
import * as SomeObj from 'emvio-util-responses;
//call some function that calls thing()
spyOn(SomeObj , 'thing').and.returnValue({});
expect(SomeObj .thing).toHaveBeenCalled();
Dies funktioniert nicht.
Andere schlagen vor, das Fensterobjekt
spyOn(window, 'thing').and.returnValue({});
Aber ich bin in Knoten mit :(