小编lou*_*phn的帖子

如何配置jest jsdom环境?

我正在使用 jest 和 React 测试库来测试我的 React 应用程序。我想测试一个需要 ISR (nextJs getStaticProps) 渲染的页面,所以我安装了next-page-tester包。它正常渲染客户端渲染页面,但当涉及到使用 ISR 渲染时,就会发生以下错误。(我尝试在 jest.config.js 文件中添加 testEnvironment: 'jsdom' 以及测试文件顶部的注释来配置 jsdom 环境)。

  • 包.json
    "test": "jest --env=jsdom",
Run Code Online (Sandbox Code Playgroud)
  • 错误:

FIRESTORE (8.6.8) 内部断言失败:意外状态

  at fail (node_modules/@firebase/firestore/src/util/assert.ts:40:9)
  at hardAssert (node_modules/@firebase/firestore/src/util/assert.ts:54:5)
  at fromBytes (node_modules/@firebase/firestore/src/remote/serializer.ts:252:5)
  at fromWatchChange (node_modules/@firebase/firestore/src/remote/serializer.ts:475:25)
  at PersistentListenStream.Object.<anonymous>.PersistentListenStream.onMessage
Run Code Online (Sandbox Code Playgroud)

(node_modules/@firebase/firestore/src/remote/persistent_stream.ts:581:25)在node_modules/@firebase/firestore/src/remote/persistent_stream.ts:461:21在node_modules/@firebase/firestore/src/remote /persistent_stream.ts:514:18 在node_modules/@firebase/firestore/src/util/async_queue_impl.ts:168:14

下面的错误可能是由于使用了错误的测试环境导致的,参见https://jestjs.io/docs/configuration#testenvironment-string。考虑使用“jsdom”测试环境。

ReferenceError: document is not defined

  at Object.cleanupDOM (node_modules/next-page-tester/dist/makeRenderMethods.js:52:5)
  at Object.cleanup (node_modules/next-page-tester/dist/testHelpers.js:39:25)
Run Code Online (Sandbox Code Playgroud)
  • 笑话.config.js:
module.exports = {
  verbose: true,
  testEnvironment: 'jsdom',
  setupFiles: ['./src/__mocks__/client.js'],
  setupFilesAfterEnv: ['./jest.setup.js', '@testing-library/jest-dom/extend-expect'],
  moduleDirectories: ['node_modules', 'src'],
  moduleNameMapper: {
    '\\.(css|less|scss|sass)$': …
Run Code Online (Sandbox Code Playgroud)

firebase reactjs jestjs next.js react-testing-library

16
推荐指数
1
解决办法
2万
查看次数