Мой модульный тест для ошибки выдачи компонента реакции, даже если отладка выводит правильный результат.
TypeError: expect(...).toBeVisible не является функцией
debug(screen.getByText('contains'))
expect(screen.getByText('contains')).toBeVisible();
этот принт:
console.info
<div
class = "sc-jOhDuK iDFeaX"
>
contains
</div>
Я не могу понять, почему toBeVisible не является функцией, даже если отладка выводит правильный результат.
Возможно, вам не хватает @testing-library/jest-dom
в файле package.json:
npm i -D @testing-library/jest-dom
Если он присутствует, то вам нужно require
его в настройках шутки, чтобы иметь возможность использовать toBeVisible
:
require('@testing-library/jest-dom');
Хорошо, я отредактировал свой ответ, чтобы отразить это.
отладить правильно распечатать элемент. Это означает, что jest и react-test-library настроены правильно, а функция screen.getByText() работает.
Элемент присутствовал все время. Чего не хватало, так это функции toBeVisible
. Также вы должны потребовать/импортировать @testing-library/jest-dom
в свой установочный файл шутки, чтобы вам не нужно было помнить, что вы вводите его в какой-либо новый тест.
Вам нужно будет импортировать или требовать в вашем индивидуальном тестовом файле.
import '@testing-library/jest-dom';
или
require('@testing-library/jest-dom');
Например:
import { render, cleanup, screen } from '@testing-library/react';
import '@testing-library/jest-dom';
Мой проект не является машинописным проектом.