“JestMatchers”类型上不存在属性

问题描述 投票:0回答:2

我正在使用一个应用程序,我想在其中安装 jest 和 cypress 进行测试。我的玩笑测试运行正常,一切都很好,然后我通过执行此命令安装了 cypress

 yarn add cypress @cypress/react @cypress/webpack-dev-server

我在赛普拉斯进行了测试,每当我尝试使用它们时都运行正常

yarn cypress open-ct

但问题是,Chai 断言在测试中运行良好,但在我的 IDE 中显示错误

我的虚拟测试

it('Test test and onClick', () => {
  let clicked = false
  const onClick = () => (clicked = true)
  mount(<Button text="Random text" onClick={onClick} />)

  cy.get('button').should('have.text', 'Random text')
  cy.get('button')
    .click()
    .then(() => {
      expect(clicked).to.equal(clicked)
    })
})

并显示错误:

error shown

我尝试遵循在互联网上看到的一些指南,但我错过了一些东西,因为我的 IDE(Webstorm 或 Visual Studio)只建议我 Jest 断言而不是 Chai 的,如果我使用 Jest 断言,我在运行 Cypress 时会收到此错误

将测试断言更改为:

expect(clicked).toEqual(clicked)

显示此错误:

enter image description here

我并不关心是否必须使用 Jest 或 Chai 断言,只要它有效即可。我更喜欢 Chai,因为它可以在 Cypress 中工作,但现在,我只希望它不会在我的 IDE 或 Cypress 中显示错误。

谢谢!

javascript typescript jestjs cypress chai
2个回答
11
投票

感谢@jonrsharpe 花时间与这个打字稿新手相处:)

我已经通过使用

yarn add --dev chai mocha ts-node @types/chai @types/mocha
安装 chai 和 mocha 依赖项并将其添加到我的 cypress 测试文件
import { expect } from 'chai'

来修复它

0
投票

我通过使用以下导入解决了这个问题:

import { expect } from "@jest/globals";

更多信息在这里:https://jestjs.io/docs/expect

© www.soinside.com 2019 - 2024. All rights reserved.