Ich arbeite an einer Redux-App & versucht, einen Spion mit Jasmine auf einer ES6-Standard exportierten Funktion zu erstellen. Ich habe ein paar verschiedene Arten versucht, die Funktion ausspionieren zu lassen, einschließlich eines Wildcard-Imports, um auf die 'Standard'-Eigenschaft des Imports zuzugreifen, aber nichts, was ich versucht habe, hat bisher funktioniert. Unten ist ein Beispiel, wo ich widgets.js
testen und die Widget-Funktion ausspionieren möchte. Gibt es eine Möglichkeit, dies zu erreichen, ohne die Art zu ändern, wie die Funktion von widget.js
exportiert wird?Wie verwende ich Jasmine, um eine Funktion auszuspionieren, die über einen ES6-Standardexport importiert wird?
widget.js
import { Map } from 'immutable';
import { CREATE_WIDGET } from 'actions';
const initialState = Map({
id: undefined,
name: undefined
});
export default function widget(state=initialState, action) {
switch (action.type) {
case CREATE_WIDGET:
return state.update((widget) => widget.merge(action.widget));
default:
return state;
}
}
widgets.js
import { OrderedMap } from 'immutable';
import { CREATE_ROOM } from 'actions';
import widget from './widget';
const initialState = OrderedMap();
export default function widgets(state=initialState, action={}) {
switch (action.type) {
case CREATE_ROOM:
return state.set(action.widget.id, widget(undefined, action));
default:
return state;
}
}
Haben Sie eine Art und Weise zu tun, was Sie mit einer benannten Export zu tun? Sie sind eigentlich nicht so anders. – Bergi
Nein, tue ich nicht. Ich wurde über dieses Plugin informiert, konnte es jedoch nicht richtig laufen lassen und fühle mich, als ob ich die Funktion nur als Methode für ein Objekt exportieren müsste. – evkline