Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TypeError:无法读取属性';检测模式';未定义的-';反应本机可怕的卡io';_Android_Ios_React Native_Jestjs_Enzyme - Fatal编程技术网

Android TypeError:无法读取属性';检测模式';未定义的-';反应本机可怕的卡io';

Android TypeError:无法读取属性';检测模式';未定义的-';反应本机可怕的卡io';,android,ios,react-native,jestjs,enzyme,Android,Ios,React Native,Jestjs,Enzyme,我正在运行此文件中的测试套件: import React from 'react' import { PaymentDetails } from '../../../../app/screens/Account/components' import { snapshot } from '../../../utils' describe('PaymentDetails', () => { const paymentMethod = { accountName: 'Test

我正在运行此文件中的测试套件:

import React from 'react'

import { PaymentDetails } from '../../../../app/screens/Account/components'
import { snapshot } from '../../../utils'


describe('PaymentDetails', () => {
  const paymentMethod = {
    accountName: 'Test Account',
    expMonth: 11,
    expYear: 2021,
    number: '4111111111111111',
    type: 'Visa',
    preferred: true,
  }

  test('snapshot = paymentDetails not empty', () => {
    snapshot(shallow(<PaymentDetails navigation={paymentMethod} />))
  })

  test('snapshot = paymentDetails empty', () => {
    snapshot(shallow(<PaymentDetails navigation={{}} />))
  })
从“React”导入React
从“../../../../app/screens/Account/components”导入{PaymentDetails}
从“../../../utils”导入{snapshot}
描述('PaymentDetails',()=>{
const paymentMethod={
accountName:'测试帐户',
月份:11,
年份:2021年,
编号:“4111111111111”,
键入:“Visa”,
首选:正确,
}
测试('snapshot=paymentDetails非空',()=>{
快照(shallow())
})
测试('snapshot=paymentDetails empty',()=>{
快照(shallow())
})
我得到这个错误:


我需要模拟这个库吗?我已经尝试过了,但是没有太多帮助。

将文件添加到package.json中的
moduleNameMapper
中为我修复了它

"jest": {
  "preset": "react-native",
  "transform": {
    "^.+\\.(js)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
  },
  "moduleNameMapper": {
   "react-native-awesome-card-io": "<rootDir>/node_modules/react-native-awesome-card-io/CardIOView.ios.js"
}
“开玩笑”:{
“预设”:“反应本机”,
“转变”:{
“^.+\.(js)$”:“/node\u modules/react native/jest/preprocessor.js”
},
“moduleNameMapper”:{
“react-native awesome卡io”:“/node_模块/react-native awesome卡io/CardIOView.ios.js”
}
如果希望所有模块都被存根,可以编写一个正则表达式来匹配这些文件名

jest.mock('react-native-awesome-card-io', () => {
  return {
    CardIOUtilities: {
      preload: jest.fn(() => Promise.resolve('the response')),
    },
  }
})

这为我完成了任务。我不需要映射模块。因此,如果要模拟本机模块,请确保使用原始名称,例如CardIOUtility,而不是CardIOUtility别名。

Hi,此模块是否与expo CLI配合使用?