如何使用 Jest 在本机反应中模拟“react-native-config”库的配置数据?

Posted

技术标签:

【中文标题】如何使用 Jest 在本机反应中模拟“react-native-config”库的配置数据?【英文标题】:How to mock Config data of 'react-native-config' library in react native using Jest? 【发布时间】:2021-12-31 10:19:18 【问题描述】:

在这里,我试图获取环境详细信息以获取应用程序的基本 url。 Here is the package being used.

// 配置文件.ts

import Config from 'react-native-config';

interface Setting 
  environment: string;
 

const settings: Setting = 
  environment: Config.ENV || '',

;

export default settings;

现在,每当我尝试从我的测试文件中访问 settings.environment 时,它都会返回空字符串(''),因为 Config.ENV 的值未定义,因为我无法模拟该值。

Excepted Result : 每当我调用 settings.environment 时,我应该得到 'test' 作为返回的字符串值。

【问题讨论】:

【参考方案1】:

开玩笑

为了模拟 Config.ENV 的使用,在项目的根目录下创建一个文件夹 __mocks__,并在其中创建一个名为 react-native-config.js 的文件

在文件里面粘贴下面的代码

// react-native-config.js

export default 
  ENV: 'test', // here 'test' is expected value
;

【讨论】:

以上是关于如何使用 Jest 在本机反应中模拟“react-native-config”库的配置数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Jest 测试中“模拟”navigator.geolocation

如何在本机反应中模拟上下文消费者反应元素

如何正确模拟使用本机代码的 React Native 模块?

当模拟点击调用调用 promise 的函数时,使用 React 的 Jest 和 Enzyme 进行测试

在 jest-react 中使用 MockedProvider 会导致错误“查询没有更多的模拟响应”

如何模拟在使用 Jest 测试的 React 组件中进行的 API 调用