Jest и библиотека реактивных тестов (...).toBeVisible не является функцией

Мой модульный тест для ошибки выдачи компонента реакции, даже если отладка выводит правильный результат.

TypeError: expect(...).toBeVisible не является функцией

debug(screen.getByText('contains'))
expect(screen.getByText('contains')).toBeVisible();

этот принт:

console.info
      <div
        class = "sc-jOhDuK iDFeaX"
      >
        contains
      </div>

Я не могу понять, почему toBeVisible не является функцией, даже если отладка выводит правильный результат.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно, вам не хватает @testing-library/jest-dom в файле package.json:

npm i -D @testing-library/jest-dom

Если он присутствует, то вам нужно require его в настройках шутки, чтобы иметь возможность использовать toBeVisible:

require('@testing-library/jest-dom');

Мой проект не является машинописным проектом.

user21116899 06.02.2023 10:28

Хорошо, я отредактировал свой ответ, чтобы отразить это.

Valentin 06.02.2023 10:32

отладить правильно распечатать элемент. Это означает, что jest и react-test-library настроены правильно, а функция screen.getByText() работает.

user21116899 06.02.2023 10:40

Элемент присутствовал все время. Чего не хватало, так это функции toBeVisible. Также вы должны потребовать/импортировать @testing-library/jest-dom в свой установочный файл шутки, чтобы вам не нужно было помнить, что вы вводите его в какой-либо новый тест.

Valentin 06.02.2023 11:25
Ответ принят как подходящий

Вам нужно будет импортировать или требовать в вашем индивидуальном тестовом файле.

import '@testing-library/jest-dom';

или

require('@testing-library/jest-dom');

Например:

import { render, cleanup, screen } from '@testing-library/react';
import '@testing-library/jest-dom';

Другие вопросы по теме