Как написать контрольный пример для неэкземплярного метода в React - PullRequest
0 голосов
/ 27 сентября 2018

Справка по написанию React-теста

import {getEvent} from './utility'
export default class MyComponent extends React.Component {
  constructor() {
     ......
  }

  componentDidMount(){
     ....
     this.addEventListeners();
  }

  addEventListeners() {
     const targetEvent = getEvent() === 'someevent' ? 'someevent' : 'someotherevent';

     if(targetEvent) {
        document.addEventListeners('targetEvent', this.handleEvent);
     }
  }
  .....
}

Выше приведен пример кода моего компонента.Я написал тестовые сценарии для компонента, где я столкнулся с некоторыми трудностями при написании тестового примера для одного сценария, описанного ниже.

Как написать тестовый пример для приведенного ниже кода

const targetEvent = getEvent() === 'someevent' ? 'someevent' : 'someotherevent';

Метод getEvent () не является методом экземпляра компонента и не проходит через него.Как метод может быть рассмотрен в тестовом примере.

Ваша помощь высоко ценится.

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2018

Так как getEvent является импортом, его следует проверять.Это необходимо не только для покрытия, но и для изоляции тестируемого объекта:

it('...', async () => {
  jest.mock('./utility', () => ({
    getEvent: jest.fn().mockReturnValue(() => 'someevent')
  });
  const MyComponent = (await import('...')).default;
  ...
...