Jest and React Native: как издеваться над AccessibilityInfo - PullRequest
1 голос
/ 19 июня 2019

Я тестирую свое собственное приложение реакции с Jest, и следующая строка вызывает у меня проблему.

AccessibilityInfo.announceForAccessibility(errorMessages[0]);

Ошибка:

TypeError: Cannot read property 'announceForAccessibility' of undefined

I 'мы пытались смоделировать его, используя

jest.mock('react-native', () => ({
  ...jest.requireActual('react-native'),
  AccessibilityInfo: {
    fetch: jest.fn(),
    addEventListener: jest.fn(),
    setAccessibilityFocus: jest.fn(),
    announceForAccessibility: jest.fn(),
    removeEventListener: jest.fn(),
  },
}));

, но это вызвало множество других проблем.

Как я могу высмеять этот конкретный экспорт в собственном пакете реагирования?

1 Ответ

1 голос
/ 01 июля 2019

У меня была такая же проблема при использовании AccessibilityInfo.fetch(), чтобы определить, использует ли пользователь программу чтения с экрана.

Одним из вариантов именованного импорта является использование метода spyOn.

import { AccessibilityInfo } from 'react-native';

jest
  .spyOn(AccessibilityInfo, 'announceForAccessibility')
  .mockImplementation(...);
...