测试笑话时 _enzymeAdapterReact.default 不是构造函数
当我用笑话和酶测试反应本机组件时遇到这个问题 TypeError: _enzymeAdapterReact.default is not a constructor
这是我的开发依赖项:
"@babel/core": "^7.12.10",
"@babel/runtime": "^7.12.5",
"@react-native-community/eslint-config": "^2.0.0",
"babel-jest": "^26.6.3",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.6",
"eslint": "^7.16.0",
"jest": "^26.6.3",
"jest-environment-enzyme": "^7.1.2",
"@types/enzyme": "^3.10.12",
"jest-enzyme": "^7.1.2",
"metro-react-native-babel-preset": "^0.64.0",
"react-test-renderer": "^17.0.0",
"redux-mock-store": "^1.5.4"
}
这是笑话配置:
verbose: true,
preset:'react-native',
transformIgnorePatterns: [
'node_modules/(?!victory-native|(jest-)?viewpager|enzyme|react-native|@react-native-community|react-native-device-info|react-native-mov-to-mp4|@react-navigation)/',
],
setupFiles: ['./jest.setup.js'],
setupFilesAfterEnv: ['./node_modules/jest-enzyme/lib/index.js'],
testEnvironment: 'enzyme',
testEnvironmentOptions: {
'enzymeAdapter': 'react16',
},
}
module.exports = config
这是笑话设置:
import { NativeModules } from 'react-native'
import mockAsyncStorage from '@react-native-async-storage/async-storage/jest/async-storage-mock'
jest.mock('@react-native-async-storage/async-storage', () => mockAsyncStorage)
NativeModules.RNCNetInfo = {
getCurrentState: jest.fn(() => Promise.resolve()),
addListener: jest.fn(),
removeListeners: jest.fn(),
}
我尝试了该线程中的所有方法,但也不起作用: https://github.com/enzymejs/enzyme/issues/1284
这是我的测试文件:
import React from 'react'
import {AddActionItem} from '../add-action-item'
import Enzyme,{ shallow } from 'enzyme'
import renderer from 'react-test-renderer'
import Adapter from 'enzyme-adapter-react-16'
Enzyme.configure({ adapter: new Adapter() })
describe('Test Add Action Item', ()=>{
test('test componet',()=>{
expect(shallow(<AddActionItem/>)).toMatchSnapshot()
})
})
请帮忙,非常感谢
I'm having this issue when test react-native component with jest and enzymeTypeError: _enzymeAdapterReact.default is not a constructor
Here is my dev dependencies:
"@babel/core": "^7.12.10",
"@babel/runtime": "^7.12.5",
"@react-native-community/eslint-config": "^2.0.0",
"babel-jest": "^26.6.3",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.6",
"eslint": "^7.16.0",
"jest": "^26.6.3",
"jest-environment-enzyme": "^7.1.2",
"@types/enzyme": "^3.10.12",
"jest-enzyme": "^7.1.2",
"metro-react-native-babel-preset": "^0.64.0",
"react-test-renderer": "^17.0.0",
"redux-mock-store": "^1.5.4"
}
Here is jest config:
verbose: true,
preset:'react-native',
transformIgnorePatterns: [
'node_modules/(?!victory-native|(jest-)?viewpager|enzyme|react-native|@react-native-community|react-native-device-info|react-native-mov-to-mp4|@react-navigation)/',
],
setupFiles: ['./jest.setup.js'],
setupFilesAfterEnv: ['./node_modules/jest-enzyme/lib/index.js'],
testEnvironment: 'enzyme',
testEnvironmentOptions: {
'enzymeAdapter': 'react16',
},
}
module.exports = config
Here is jest setup:
import { NativeModules } from 'react-native'
import mockAsyncStorage from '@react-native-async-storage/async-storage/jest/async-storage-mock'
jest.mock('@react-native-async-storage/async-storage', () => mockAsyncStorage)
NativeModules.RNCNetInfo = {
getCurrentState: jest.fn(() => Promise.resolve()),
addListener: jest.fn(),
removeListeners: jest.fn(),
}
I tried all method in this thread but not working also:
https://github.com/enzymejs/enzyme/issues/1284
Here is my test file:
import React from 'react'
import {AddActionItem} from '../add-action-item'
import Enzyme,{ shallow } from 'enzyme'
import renderer from 'react-test-renderer'
import Adapter from 'enzyme-adapter-react-16'
Enzyme.configure({ adapter: new Adapter() })
describe('Test Add Action Item', ()=>{
test('test componet',()=>{
expect(shallow(<AddActionItem/>)).toMatchSnapshot()
})
})
Please help, thank you a lots
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试在应用程序的根部中制作一个新的文件setuptest.js,然后放在那里,不每次此配置零件
如果使用type type脚本,那么
我的软件包JSON版本就
在package.json我有一个类似玩笑的配置
Have you try to make a new file setupTests.js , in the root of App , and put there , for not write every time this configuration part
if you using type script then
my package json versions are
in the package.json I have a configuration of jest like this