【发布时间】:2019-07-17 13:30:11
【问题描述】:
我在使用Jest 进行单元测试时遇到了react-native-vector-icons 包的问题。
错误:
TypeError: Cannot read property 'default' of undefined
14 | test("second step register render correctly", () => {
15 | // @ts-ignore
> 16 | const wrapper = mount<SecondStepRegisterScreenImpl>(<SecondStepRegisterScreenImpl navigation={{}}/>)
| ^
17 | wrapper.render()
18 |
19 | expect(wrapper.find(SafeAreaView)).toExist()
at new Icon (node_modules/react-native-vector-icons/lib/create-icon-set.js:42:399)
at constructClassInstance (node_modules/react-dom/cjs/react-dom.development.js:11361:18)
at updateClassComponent (node_modules/react-dom/cjs/react-dom.development.js:14687:5)
at beginWork (node_modules/react-dom/cjs/react-dom.development.js:15644:16)
首先,我将 react-native 与 ignite-bowser 模板一起使用,该模板将 typescript 用于 react-native。 参考:infinitered/ignite-bowser
下面是我的Jest 配置:jest-preset-ignite 预设:infinitered/jest-preset-ignite
module.exports = {
preset: "jest-preset-ignite",
transformIgnorePatterns: [
"<rootDir>/node_modules/(?!(jest-)?react-native|react-native|react-navigation|@react-navigation|@storybook|@react-native-community|@expo)"
],
setupFilesAfterEnv: [
"<rootDir>/test/setup-enzyme.ts"
],
moduleNameMapper: {
"^lodash-es$": "lodash"
}
};
我曾尝试像这样模拟 react-native-vector-icons 包:
jest.mock("react-native-vector-icons")
但没有结果。
我错过了什么吗?
【问题讨论】:
标签: javascript react-native jestjs