带有测试 react-native-testing-library 和 jest-native 的世博会应用程序“没有导出成员 'toHaveProp”
Posted
技术标签:
【中文标题】带有测试 react-native-testing-library 和 jest-native 的世博会应用程序“没有导出成员 \'toHaveProp”【英文标题】:expo app with testing react-native-testing-library and jest-native "has no exported member 'toHaveProp"带有测试 react-native-testing-library 和 jest-native 的世博会应用程序“没有导出成员 'toHaveProp” 【发布时间】:2021-05-08 16:48:15 【问题描述】:我正在尝试使用 jest-native 作为额外的匹配器,但我认为我遇到了安装问题 ... 我在一个带有 expo 的 react-native ts 应用程序上,这是我的版本:
世博会:"~39.0.0" @testing-library/react-native 版本:"^7.1.0" jest-preset: 'jest-expo', react-native 版本:“63.4”我想这样使用它:
import toHaveProp from '@testing-library/jest-native';
expect.extend( toHaveProp );
但它给了我这个错误:
Module '"../../../../../../node_modules/@testing-library/jest-native/extend-expect"' has no exported member 'toHaveProp'.
有什么想法吗?
【问题讨论】:
你的@testing-library/jest-native
版本是什么?
@juliomalves 最后一个“^3.4.3”
【参考方案1】:
我遇到了同样的问题,对我来说,只需将以下内容添加到 Jest 配置中即可:
setupFilesAfterEnv: ['@testing-library/jest-native/extend-expect'],
我不需要写expect.extend
,只需要写点toHaveStyle
等功能就可以了;例如:
expect(getByTestId('containerView')).toHaveStyle;
toHaveStyle
现在只是在这里,没有在上面的导入中特别导入toHaveStyle
。值得注意的是,我还必须在我的测试文件中导入jest-native
,正如the accepted answer 所建议的那样:
import '@testing-library/jest-native';
【讨论】:
发布答案时请注意格式。我已经编辑了您的答案,以帮助澄清解释并提高可读性。看看我的更改,以确保它与您的意图一致——有几个地方我需要解释您的意思。【参考方案2】:好的,如果我把它 import '@testing-library/jest-native';
放在我的测试文件的顶部,那就行了
【讨论】:
谢谢!这是我错过的最后一步。 如果能帮到你就好了 ;)以上是关于带有测试 react-native-testing-library 和 jest-native 的世博会应用程序“没有导出成员 'toHaveProp”的主要内容,如果未能解决你的问题,请参考以下文章
应用程序卡在带有 Xcode 11 测试版的 iOS 13 测试版模拟器上,但在带有 Xcode 10 的 iOS 13 测试版模拟器上运行良好