javascript – 如何使用Jasmine监视通过ES6默认导出导入的功能?

前端之家收集整理的这篇文章主要介绍了javascript – 如何使用Jasmine监视通过ES6默认导出导入的功能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在Redux应用程序尝试使用Jasmine在ES6默认导出的函数上创建一个间谍.我尝试了一些不同的方式来监视该功能,包括使用通配符导入来访问导入的“默认”属性,但我迄今没有尝试过的工作.下面是一个例子,我想在widget功能上测试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;
  }
}

解决方法

你说你尝试导入通配符和默认监视?这种做法有什么问题?我刚刚遇到这个问题,这样做为我解决了:
import * as widget from './widget';

describe('widget spec',() => {
    beforeEach(() => {
        spyOn(widget,'default');
    });
});

猜你在找的JavaScript相关文章