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配合使用?