无法导入@testing-library/jest-dom,expect.extend不是函数

Can't import @testing-library/jest-dom, expect.extend is not a function

我正在尝试将 @testing-library/jest-dom 添加到我的项目中,但没有成功。它由 yarn 安装到我的开发依赖项中,并在 setupTests.js 中导入:

import '@testing-library/jest-dom';

测试失败:

Invalid Chai property: toBeDisabled

  40 |     it('should be disabled', async () => {
  41 |       const button = screen.getByRole('button', { name: 'Create button' });
> 42 |       expect(button).toBeDisabled();
     |       ^
  43 |     });
  44 |   });

我哪里错了?

看起来您在同一个测试套件中同时使用了 Chai 和 Jest,它们都具有 expect 功能。在此测试中,您希望使用 Jest,但被调用的是 Chai。 Chai 的 expect 没有 toBeDisabled 函数 属性,因此出现错误。

您是否也在该文件中导入了 Chai?如果是这样,请删除该导入。如果您需要这两种测试框架,我建议您将测试分成不同的文件,这样在一个文件中您只能 运行 使用一个框架进行测试。