Есть ли какой-нибудь способ использовать Jest и jest-dom вместе без необходимости переноса?

#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.