【发布时间】:2016-03-10 20:24:07
【问题描述】:
我正在开发一个 Redux 应用程序并尝试在 ES6 默认导出函数上使用 Jasmine 创建一个间谍。我尝试了几种不同的方法来监视该函数,包括使用通配符导入来访问导入的“默认”属性,但到目前为止我没有尝试过任何工作。下面是一个示例,我想测试widgets.js 并监视小部件功能。有没有办法实现这一点而不必改变我从widget.js导出函数的方式?
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;
}
}
【问题讨论】:
-
您有办法使用命名导出来做您想做的事情吗?它们实际上并没有那么不同。
-
不,我不知道。有人告诉我这个插件,但是,我无法让它正常运行,我觉得我可能只需要将函数导出为对象上的方法。
标签: javascript jasmine ecmascript-6 redux