При работе с Jest, популярной средой тестирования JavaScript, вы можете столкнуться с ошибкой «TypeError:expect(…).toHaveStyleRule is not a function». Эта ошибка обычно возникает, когда вы используете сопоставление toHaveStyleRule, но Jest не может распознать его как допустимую функцию. В этой статье мы рассмотрим несколько методов, которые помогут вам устранить и устранить эту ошибку. Мы также предоставим примеры кода для иллюстрации каждого метода.
Метод 1: проверка конфигурации Jest
Первый шаг — убедиться, что Jest и необходимые зависимости правильно установлены в вашем проекте. Проверьте файл package.jsonи убедитесь, что у вас есть необходимые пакеты, например jest-domи @testing-library/jest-dom. Если они отсутствуют, установите их с помощью выбранного менеджера пакетов:
npm install jest-dom @testing-library/jest-dom --save-dev
Метод 2: импортируйте необходимые средства сопоставления.
Сопоставители Jest, включая toHaveStyleRule, необходимо импортировать в ваши тестовые файлы. Убедитесь, что вы импортировали необходимые средства сопоставления из пакета jest-domв тестовый файл:
import '@testing-library/jest-dom/extend-expect';
Метод 3. Проверка файлов конфигурации Jest
Если у вас есть файл конфигурации Jest, например jest.config.jsили jest.config.json, убедитесь, что он содержит необходимые настройки для распознавания сопоставитель toHaveStyleRule. Добавьте следующую конфигурацию в файл конфигурации Jest:
module.exports = {
setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect'],
};
Метод 4: обновить версию Jest
Иногда эта ошибка может возникать из-за проблем совместимости между Jest и пакетом jest-dom. Рассмотрите возможность обновления Jest до последней версии и переустановки пакета jest-dom:
npm install jest@latest jest-dom --save-dev
Метод 5: проверьте правильность использования
Дважды проверьте свой тестовый код, чтобы убедиться, что вы правильно используете сопоставление toHaveStyleRule. Его следует использовать вместе с функцией expectJest. Вот пример правильного использования:
import { render } from '@testing-library/react';
test('example test', () => {
const { container } = render(<Component />);
expect(container).toHaveStyleRule('color', 'red');
});
Ошибку «TypeError: ожидаем(…).toHaveStyleRule не является функцией» в Jest можно устранить, выполнив несколько шагов по устранению неполадок. Проверив конфигурацию Jest, импортировав необходимые средства сопоставления, проверив файлы конфигурации Jest, обновив версии Jest и обеспечив правильное использование средства сопоставления toHaveStyleRule, вы можете преодолеть эту ошибку и беспрепятственно продолжить модульное тестирование.р>
Не забывайте всегда обновлять свои тестовые зависимости и обращаться к официальной документации или онлайн-ресурсам для получения дополнительной информации о том, как эффективно использовать определенные средства сопоставления Jest.