reactjs - Jest 无法读取未定义对象的属性
问题描述
在 React Native 中,我创建了一个theme.js
文件,其中有一些函数可以根据公司的设计系统获取我的颜色。
// theme.js
const PRIMARY_COLORS = {
900: '#000000',
800: '#003030',
700: '#004040',
600: '#006060',
500: '#00A090',
400: '#00C0A0',
300: '#00E0D0',
200: '#C0FFF0',
100: '#E0FFF0',
};
export function _primaryColor(code) {
return PRIMARY_COLORS[code];
}
当使用 React 的默认测试运行 jest 时,它会抛出一个错误,指出PRIMARY_COLORS
未定义。
// App-test.tsx
import 'react-native';
import React from 'react';
import App from '../App';
import renderer from 'react-test-renderer';
jest.useFakeTimers();
it('renders correctly', async () => {
renderer.create(<App />);
});
如果对象在函数内部,则测试将正确运行,但这意味着每次函数运行时都会实例化对象。
有没有办法解决这个问题?
解决方案
好像您在 App 组件中使用了 theme.js,所以在您的 App 的测试文件中模拟了 theme.js 文件,这应该可以修复错误。
推荐阅读
- ios - ios firebase 数据库获取值的关键
- html - 引导 CDN 不起作用
- react-native - 获取 iOS 的请求抛出“网络请求失败”
- google-cloud-platform - 在临时函数 WHERE 语句中否定相等会导致连接错误
- ajax - Ajax 呈现的 Html 输入未在发布请求中提交
- mysql - 如何检查 ActiveRecord 中的“自动提交”值
- c - 检查文件是否存在 C 中的部分名称
- javascript - 字符映射对象最大值出现
- android - Android Instant App 未正确安装(表现得像普通应用程序)
- python - python 正则表达式查找重音单词