первая проблема в реагирующем тестировании библиотеки - PullRequest
0 голосов
/ 10 апреля 2019

Я использую реагирующую библиотеку для своего реактивного приложения.В одном тестовом примере мне нужно заполнить какое-то значение в текстовом поле и выделить фокус.

Вот скрипт теста -

it('searchbox wrapper',async()=>{
    let wrapper=getSearchBoxWrapperInstance('')
    let inputBox=wrapper.findByTestId('inputText');
    inputBox.value='12345';
    fireEvent(inputBox,'focusOut');

})

При выполнении теста я получаю следующую ошибку-

TypeError: element.dispatchEvent is not a function

  79 |     let inputBox=wrapper.findByTestId('inputText');
  80 |     inputBox.value='12345';
> 81 |     fireEvent(inputBox,'focusOut');
     |     ^
  82 |     //fireEvent('Blur',
  83 | 
  84 |     //await (() => wrapper.getByText('')))

  at fireEvent (node_modules/dom-testing-library/dist/events.js:533:18)

Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию

1 Ответ

1 голос
/ 10 апреля 2019

Я предполагаю, getSearchBoxWrapperInstance возвращает результат render.

Попробуйте, если это работает:

it('searchbox wrapper',async()=>{
  let wrapper=getSearchBoxWrapperInstance('')
  let inputBox=wrapper.findByTestId('inputText');
  fireEvent.change(inputBox, { target:  { value: '12345' } });
  fireEvent.focusOut(inputBox);
  // In alternative you could try fireEvent.blur
})

Также возможно, что findByTestId не найдет ваш элемент. Попробуйте выйти из системы, чтобы узнать, так ли это, или используйте getByTestId, который выдает ошибку, если элемент не найден.

...