如何监视默认导出的函数

时间:2015-10-01 15:39:02

标签: javascript node.js sinon

sinon.spy有2个参数,对象和函数名。

我有一个如下所列的模块:

module.exports = function xyz() { }

如何为xyz定义间谍?我没有使用对象名称。

思想?

1 个答案:

答案 0 :(得分:30)

如果您正在使用ES6模块导入功能,则上述实际上不起作用。如果您发现了,您实际上可以监视默认值。

// your file
export default function () {console.log('something here');}

// your test
import * as someFunction from './someFunction';
spyOn(someFunction, 'default')

http://2ality.com/2014/09/es6-modules-final.html

中所述
  

默认导出实际上只是具有特殊名称default

的命名导出

所以import * as someFunction让你可以访问整个module.exports对象,允许你监视默认值。