Как вы тестируете на предмет отсутствия элемента, используя jest и response-testing-library? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть библиотека компонентов, которую я пишу модульные тесты для использования Jest и реагировать на тестирование библиотеки.Основываясь на определенных реквизитах или событиях, я хочу убедиться, что определенные элементы не отображаются.

getByText, getByTestId, и т.д.тест не пройден до того, как сработает функция expect.

Как вы тестируете что-то, чего не существует в jest, используя response-testing-library?

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Вы должны использовать queryByTestId вместо getByTestId.

Вот пример кода, где я хочу проверить, не существует ли компонент с идентификатором "car".

 describe('And there is no car', () => {
  it('Should not display car mark', () => {
    const props = {
      ...defaultProps,
      base: null,
    }
    const { queryByTestId } = render(
      <IntlProvider locale="fr" messages={fr}>
        <CarContainer{...props} />
      </IntlProvider>,
    );
    expect(queryByTestId(/car/)).toBeNull();
  });
});
0 голосов
/ 12 октября 2018

Из Документы библиотеки тестирования DOM - Внешний вид и исчезновение

Что если я хочу убедиться, что элемент НЕ существует?

Обычно вы будетеполучить доступ к отображаемым элементам с помощью утилиты getByTestId.Однако эта функция выдаст ошибку, если элемент не найден.Если вы хотите специально проверить отсутствие элемента, вам следует использовать утилиту queryByTestId, которая будет возвращать элемент, если он найден, или ноль, если нет.

expect(queryByTestId('thing-that-does-not-exist')).toBeNull()
...