有什么方法可以一起使用 Jest 和 jest-dom 而无需转译?

Is there any way to use Jest and jest-dom together without having to transpile?

我想用 Jest 编写一个单元测试,使用 jest-dom 作为模拟 DOM-- 无需转译。我希望我所要做的就是导入带有 CommonJS 导入的 jest-dom 包。但是当我这样做时,运行 我的测试(使用 npm test),它仍然失败:

ReferenceError: document is not defined(完整输出here

有什么解决办法吗?我的测试文件如下。

谢谢。


我的代码

myApp.test.js

require("@testing-library/jest-dom");
document.createElement("div");

经过反复试验,我成功了。以下是我所做的编辑:

myApp.test.js(测试文件)

require("@testing-library/jest-dom/extend-expect");

我在 this post 那里看到了。

package.json 将以下内容添加到顶层:

  "jest": {
    "testEnvironment": "jest-environment-jsdom"
  },

我做到了 b/c this doc page 说我应该将 Jest testEnvironment 编辑为 jest-environment-jsdom。我不知道为什么该字符串用作值,而不是包的名称 (test-dom)。但这对我有用。

This doc page 展示了如何编辑我的 Jest 测试环境。