用Jest模拟文件导入

时间:2018-10-23 07:52:45

标签: react-native mocking jestjs

我正在尝试在我们正在进行的旧项目中创建单元测试。配置被导入到模块中,但是我想模拟整个导入过程。

设置如下:

在.eslintrc中

"globals": {
    "fetch": true,
    "alert": true,
    "Response": true,
    "Headers": true,
    "Request": true,
    "ErrorUtils": true,
    "navigator": true,
    "__DEV__": true
  }

Config.js

const localConf = __DEV__ ? require('~/utils/Config.local.js').default : null;

export default localConf || { //configuration here }

我正在尝试为导入Configuration的类编写测试,如下所示:

import Config from '../../utils/Config';
class ApiClient { }

测试:

__DEV__ = false;
jest.mock('../../../Utils/Config.Brand.js');

import ApiClient, { ApiError, ApiClientClass } from '../';

it('Dummy', () => {
  return undefined;
});

每次运行测试,我都会得到:

Cannot find module '~/utils/Config.local.js' from 'Config.js'

这当然是因为 DEV 似乎也针对测试设置为true。

在测试中,我尝试设置全局变量。 DEV 以及其他实现方法,我觉得此设置从根本上来说是错误的,但是我对React-Native还是很陌生,所以我还没有完全了解发生了什么事情。

0 个答案:

没有答案