如何用玩笑模拟全局 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; };