我正在用Jest测试我的react本地应用程序,以下代码给我一个问题。
AccessibilityInfo.announceForAccessibility(errorMessages[0]);
错误:
TypeError: Cannot read property 'announceForAccessibility' of undefined
我尝试使用
对其进行模拟jest.mock('react-native', () => ({
...jest.requireActual('react-native'),
AccessibilityInfo: {
fetch: jest.fn(),
addEventListener: jest.fn(),
setAccessibilityFocus: jest.fn(),
announceForAccessibility: jest.fn(),
removeEventListener: jest.fn(),
},
}));
但这带来了很多其他问题。
我该如何在react native包上模拟这个特定的导出?
答案 0 :(得分:1)
使用AccessibilityInfo.fetch()
确定用户是否使用屏幕阅读器时,我遇到了同样的问题。
命名导入的一个选项是使用spyOn方法。
import { AccessibilityInfo } from 'react-native';
jest
.spyOn(AccessibilityInfo, 'announceForAccessibility')
.mockImplementation(...);