如何使用jest模拟全局commonjs方法?

时间:2016-02-10 11:42:55

标签: javascript unit-testing jasmine jestjs

我尝试用开玩笑测试一些基本的redux减速器,偶然发现了一个我自己无法解决的问题:

在我的reducer中,我引用了一个全局方法“__”(一些i18n的东西),其实现基本如下:

window.__ = function(foo) { return window.i18n[foo]; }

上面提到的方法在我通过import definitions from 'definitions';

包含在我的reducer中的另一个模块中引用

定义文件如下所示:

/* global __ */
// some basic stuff
export default () {
  return __('foobar');
}

如何在测试代码中模拟__方法?鉴于__不是模块,它不能自动锁定。 :/

1 个答案:

答案 0 :(得分:0)

您可以使用以下语法模拟全局__方法:

global.__ = function(foo) { return foo; };