在同一个项目中使用@jest-environment jsdom和@jest-environment节点[Jest-ReactJS]

Ank*_*ain 5 javascript reactjs jestjs ts-jest

我们在项目中使用“Jest with React Testing Library”进行单元测试。在同一个项目中,我们有一些情况需要“@jest-environment jsdom”,有些情况需要@jest-environment节点。我们如何在测试用例文件中切换它。

我们有以下 jest.config.js 文件:

 /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
    module.exports = {
      preset: 'ts-jest',
      testEnvironment: 'node'
    };
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法,但根据我的经验,它不起作用。

/**
 * @jest-environment jsdom
 */

test('use jsdom in this test file', () => {
  const element = document.createElement('div');
  expect(element).not.toBeNull();
});

/**
 * @jest-environment node
 */

test('do not use jsdom in this test file', () => {
  console.log(window); // this will fail as node doesn't have a window object
});
Run Code Online (Sandbox Code Playgroud)