首页 > 解决方案 > 无法导入@testing-library/jest-dom,expect.extend 不是函数

问题描述

我正在尝试添加@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 |   });

我哪里错了?

标签: reactjsreact-testing-libraryjest-dom

解决方案


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

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


推荐阅读