如何在React Native中用Jest mock react-native-config库的Config数据
解决方案
步骤1:选择合适的mock方式
你可以任选以下两种方式之一完成mock:
方式一:全局mock第三方包
在测试目录下新建__mocks__/react-native-config.ts文件,写入如下代码:
export default { ENV: 'test', // 后续用到其他环境变量也可在此处补充定义 };
如果使用Jest作为测试框架,也可以直接在测试用例文件顶部添加mock声明:
jest.mock('react-native-config', () => ({ default: { ENV: 'test' } }));
方式二:直接在配置文件兼容测试场景
不需要额外mock,直接修改configfile.ts的取值逻辑,适配测试环境:
import Config from 'react-native-config'; interface Setting { environment: string; } const settings: Setting = { environment: Config.ENV || (process.env.NODE_ENV === 'test' ? 'test' : ''), }; export default settings;
步骤2:验证测试执行顺序
如果使用用例内mock的方式,需要保证mock语句的位置在导入configfile.ts之前,示例如下:
// mock语句必须放在导入配置文件之前 jest.mock('react-native-config', () => ({ default: { ENV: 'test' } })); import settings from './configfile'; test('验证environment取值为test', () => { expect(settings.environment).toBe('test'); });
内容的提问来源于stack exchange,提问作者Avinash
相关产品推荐
相关产品推荐

