带有测试 react-native-testing-library 和 jest-native 的 expo 应用 "has no exported member 'toHaveProp"

expo app with testing react-native-testing-library and jest-native "has no exported member 'toHaveProp"

我正在尝试使用 jest-native 作为额外的匹配器,我认为我遇到了安装问题 ...
我正在使用 expo 的 react-native ts 应用程序,这是我的版本:

我想这样使用:

import { toHaveProp } from '@testing-library/jest-native';

expect.extend({ toHaveProp });

但是它给我这个错误:

Module '"../../../../../../node_modules/@testing-library/jest-native/extend-expect"' has no exported member 'toHaveProp'.

有什么想法吗?

好的,如果我把它 import '@testing-library/jest-native'; 放在我的测试文件的顶部,就可以了

我遇到了同样的问题,对我来说有效的是简单地将以下内容添加到 Jest 配置中:

setupFilesAfterEnv: ['@testing-library/jest-native/extend-expect'],

不用写expect.extend,只要写toHaveStyle等功能就可以了;例如:

expect(getByTestId('containerView')).toHaveStyle;

toHaveStyle 现在只是在这里,没有在上面的导入中特别导入 toHaveStyle。值得注意的是,我也确实必须在我的测试文件中导入 jest-native,正如 所建议的那样:

import '@testing-library/jest-native'; 

我不想在每个测试文件中导入它,并且我的设置(使用 expo)无法将它添加到 setupFilesAfterEnv 中,所以我从 official Github 中执行了以下操作。

Import @testing-library/jest-native/extend-expect once (for instance in your tests setup file) and you're good to go:

import '@testing-library/jest-native/extend-expect';