带有测试 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”的主要内容,如果未能解决你的问题,请参考以下文章

带有支付功能的产品如何进行测试

带有或不带有主机应用程序的单元测试自定义 iOS 框架

带有异常期望的 JUnit 测试(多个断言)

应用程序卡在带有 Xcode 11 测试版的 iOS 13 测试版模拟器上,但在带有 Xcode 10 的 iOS 13 测试版模拟器上运行良好

带有文档测试、覆盖率和并行性的 Python 测试发现

带有笑话的Vue Cli单元测试如何运行单个测试