【问题标题】:Jest and React Native: How to mock AccessibilityInfoJest 和 React Native:如何模拟 AccessibilityInfo
【发布时间】:2019-11-02 12:11:58
【问题描述】:

我正在使用 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 包上模拟这个特定的导出?

【问题讨论】:

    标签: reactjs unit-testing react-native mocking jestjs


    【解决方案1】:

    我在使用AccessibilityInfo.fetch() 来确定用户是否使用屏幕阅读器时遇到了同样的问题。

    命名导入的一个选项是使用 spyOn 方法。

    import { AccessibilityInfo } from 'react-native';
    
    jest
      .spyOn(AccessibilityInfo, 'announceForAccessibility')
      .mockImplementation(...);
    

    【讨论】:

      猜你喜欢
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2019-10-08
      • 2017-08-26
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多