#javascript #module #jestjs #jest-dom
Вопрос:
Я хочу написать модульный тест с Jest, с jest-dom в качестве макета DOM-без необходимости переноса. Я надеялся, что все, что мне нужно было сделать, это импортировать пакет jest-dom с помощью импорта CommonJS. Но когда я это делаю, а затем запускаю свои тесты (с npm test
), он все равно терпит неудачу с:
ReferenceError: document is not defined
(полный вывод здесь)
Есть идеи, как это решить? Мой тестовый файл приведен ниже.
Спасибо.
Мой Код
myApp.test.js
require("@testing-library/jest-dom");
document.createElement("div");
Ответ №1:
После некоторых проб и ошибок я заставил его работать. Вот те правки, которые я внес:
myApp.test.js
(тестовый файл)
require("@testing-library/jest-dom/extend-expect");
Я видел там в этом посте.
package.json
Добавьте следующее на верхний уровень:
"jest": {
"testEnvironment": "jest-environment-jsdom"
},
Я сделал это, потому что на этой странице документа говорилось, что я должен отредактировать свою среду для тестирования шуток jest-environment-jsdom
. Я не знаю, почему эта строка используется в качестве значения, а не имени пакета ( test-dom
). Но это то, что работает на меня.
На этой странице документа показано, как отредактировать мою среду тестирования Jest.