我想用Jest编写一个单元测试,用Jest - DOM作为模拟DOM——不需要编译。我希望我所要做的就是用CommonJS导入导入jest-dom包。但是当我这样做时,然后运行我的测试(使用npm test
),它仍然失败:
ReferenceError: document is not defined
(此处为全输出)
有什么办法解决这个问题吗?我的测试文件如下:
谢谢。
我的代码
myApp.test.js
require("@testing-library/jest-dom");
document.createElement("div");
经过一些尝试和错误,我使它工作。以下是我所做的编辑:
myApp.test.js
(test file)
require("@testing-library/jest-dom/extend-expect");
我在这篇文章里看到过。
package.json
添加以下内容到顶层:
"jest": {
"testEnvironment": "jest-environment-jsdom"
},
我这样做了,因为这个文档页面说我应该编辑我的Jest testEnvironment到jest-environment-jsdom
。我不知道为什么这个字符串被用作值,而不是包的名称(test-dom
)。但这对我来说是有效的。
这个文档页面展示了如何编辑我的Jest testEnvironment。