Ответ 1
Вы можете создать свой собственный макет функции в скрипте установки Jest
HTMLCanvasElement.prototype.getContext = () => {
// return whatever getContext has to return
};
Я пишу тесты с помощью Jest для компонентов, которые используют элементы холста. Я продолжаю получать сообщение об ошибке, когда я запускаю свои тесты, которые выглядят так.
Error: Not implemented: HTMLCanvasElement.prototype.getContext (without installing the canvas npm package)
Из моего понимания Jest использует jsdom для его тестирования и что jsdom совместим с холстом, если вы устанавливаете пакеты с холстом или холстом.
Я попытался установить каждый из этих пакетов, и ни одна из них не разрешила ошибку. Единственное, что, я думаю, могло бы пойти не так, так это то, что jsdom не может найти пакеты с холстом или холстом. Кто-нибудь знает способ исправить эту ошибку или тест, чтобы узнать, найдет ли jsdom другие пакеты? Большое спасибо!
Вы можете создать свой собственный макет функции в скрипте установки Jest
HTMLCanvasElement.prototype.getContext = () => {
// return whatever getContext has to return
};
У меня была похожая проблема с моими тестами Jest, и я решил ее, установив jest-canvas-mock.
Оба ответа выше работают. Тем не менее, я просто хотел добавить, что в случае create-реагировать на приложение, он не поддерживает 'setupFiles', требуемый jest conf в package.json для jest-canvas-mock.
Я справился с этим, добавив оператор import в каждый из тестовых файлов, которые вызывали элемент canvas (в моем случае 3). Затем я переместил оператор импорта в файл setupTests.js и также удалил это требование.