如何用玩笑模拟全局 commonjs 方法?
How to mock a global commonjs method with jest?
我试着开玩笑地测试一些基本的 redux reducer,结果偶然发现了一个我自己无法解决的问题:
在我的 reducer 中,我引用了一个全局方法“__”(一些国际化的东西),它的实现基本上如下所示:
window.__ = function(foo) { return window.i18n[foo]; }
我通过 import definitions from 'definitions';
在我的 reducer 中包含的另一个模块中引用了上述方法
定义文件如下所示:
/* global __ */
// some basic stuff
export default () {
return __('foobar');
}
如何在测试代码中模拟 __
方法?鉴于 __
不是模块,因此无法自动模拟。 :/
您可以使用以下语法模拟全局 __
方法:
global.__ = function(foo) { return foo; };
我试着开玩笑地测试一些基本的 redux reducer,结果偶然发现了一个我自己无法解决的问题:
在我的 reducer 中,我引用了一个全局方法“__”(一些国际化的东西),它的实现基本上如下所示:
window.__ = function(foo) { return window.i18n[foo]; }
我通过 import definitions from 'definitions';
定义文件如下所示:
/* global __ */
// some basic stuff
export default () {
return __('foobar');
}
如何在测试代码中模拟 __
方法?鉴于 __
不是模块,因此无法自动模拟。 :/
您可以使用以下语法模拟全局 __
方法:
global.__ = function(foo) { return foo; };