如何模拟导出默认值和对象的npm模块

问题描述 投票:0回答:1

我创建了一个库,该库导出包含一些实用程序功能的默认对象。除了默认值,我还导出了几个枚举。这是我的导出在库的根文件中的样子

exports.default = new _oAuth2.default();
var OAUTH_LOG_LEVELS = exports.LOG_LEVELS = {DEBUG: 10, WARN: 20};
var OAUTH_VERSIONS = exports.VERSIONS = {V1: '1.0', v2: '2.0'}

在我的react应用中,我正在导入并使用类似的值

import lib1, {VERSIONS, LOG_LEVELS} from 'mylib';

lib1.init({
  verion: VERSIONS.V1,
})

一切都在应用程序中正常运行。现在,我想使用Jest在应用程序中添加单元测试,我试图模拟库。这是我的模拟]]

jest.mock('myLib', () => ({
  init: jest.fn(),
}));

现在,我的问题是,如何模拟库以包含枚举和默认值?我尝试了多种方法,但没有成功。没有这些,我将无法使用该库公开的枚举。当我尝试使用该代码时,单元测试会引发未定义VERSIONS的错误。

我创建了一个库,该库导出包含一些实用程序功能的默认对象。除了默认值,我还导出了几个枚举。这是我的导出在根目录下的样子...

reactjs unit-testing jest
1个回答
0
投票

使用jest.requireActual获取实际的导出值,并覆盖所需的值。

© www.soinside.com 2019 - 2024. All rights reserved.