首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模仿第三方的反应-开玩笑吧?

如何模仿第三方的反应-开玩笑吧?
EN

Stack Overflow用户
提问于 2019-06-29 00:24:01
回答 1查看 4.3K关注 0票数 3

我正在使用NumericInput,当我在我的设备上运行应用程序时,它工作得很好。

然而,当我运行jest时,我会得到各种各样的错误:

代码语言:javascript
复制
TypeError: Cannot read property 'default' of undefined

  at new Icon (node_modules/react-native-vector-icons/lib/create-icon-set.js:42:389)
  at constructClassInstance (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:3435:18)
  at updateClassComponent (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6606:5)
  at beginWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7563:16)
  at performUnitOfWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11234:12)
  at workLoop (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11266:24)
  at renderRoot (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11349:7)
  at performWorkOnRoot (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12237:7)
  at performWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12149:7)
  at performSyncWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12123:3)

代码语言:javascript
复制
console.error node_modules/react-test-renderer/cjs/react-test-renderer.development.js:9036
The above error occurred in the <Icon> component:
    in Icon (at NumericInput.js:226)
    in View (created by View)
    in View (at createAnimatedComponent.js:151)
    in AnimatedComponent (at TouchableOpacity.js:282)
    in TouchableOpacity (at Button.js:18)
    in Button (at NumericInput.js:225)
    in View (created by View)
    in View (at NumericInput.js:224)
    in NumericInput
    in View (created by View)
    in View
    in View (created by View)
    in View (at ScrollViewMock.js:29)
    in RCTScrollView (created by _class)
    in _class (at ScrollViewMock.js:27)
    in ScrollViewMock (created by App)
    in App

Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://.../react-error-boundaries to learn more about error boundaries.

第一个问题:这正常吗?

第二个问题:如果是,我如何模拟NumericInput

本指南之后,我似乎需要这样做:

代码语言:javascript
复制
jest.mock('react-native-numeric-input', () => 'NumericInput');

但不起作用。我也试过:

代码语言:javascript
复制
jest.mock('react-native-vector-icons', () => 'Icon');

但没有成功。

o_0这是怎么回事?

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-29 11:44:26

这是react-native官方的jest预处理器的一个问题。

这是我的jest配置文件:

代码语言:javascript
复制
const { defaults } = require('jest-config');

module.exports = {
    preset: 'react-native',
    transform: {
        '^.+\\.js$': '<rootDir>/node_modules/react-native/jest/preprocessor.js',
        '^.+\\.tsx?$': 'ts-jest'
    },
    moduleFileExtensions: [
        'tsx',
        ...defaults.moduleFileExtensions
    ],
};

为了解决这个问题,这是我的新的jest配置文件:

代码语言:javascript
复制
const { defaults } = require('jest-config');

module.exports = {
    preset: 'react-native',
    transform: {
        '^.+\\.tsx?$': 'ts-jest'
    },
    moduleFileExtensions: [
        'tsx',
        ...defaults.moduleFileExtensions
    ],
};

使用'react-native'预置时,不需要jest预处理器转换项。获取更多信息

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56814268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档