Estoy tratando de escribir pruebas para mi aplicación React simple que crea una interfaz de usuario para un refugio para perros usando API, etc. Importé los módulos que se muestran a continuación y ejecuté el siguiente comando
npm install jest-dom react-testing-library --save-devSin embargo, obtengo toBeInTheDocument(); método subrayado en rojo y el mensaje de error
"Property 'toBeInTheDocument' does not exist on type 'Matchers<any>'." import "react-testing-library/cleanup-after-each"; import "jest-dom/extend-expect"; import * as React from "react"; import PetCard from "./PetCard"; import Pet from "./Pet"; import { render } from "react-testing-library"; const petMock = { id: "225c5957d7f450baec75a67ede427e9", name: "Fido", status: "available", kind: "dog", breed: "Labrador", } as Pet; describe("PetCard", () => { it("should render the name", () => { const { getByText } = render(<PetCard pet={petMock} />); expect(getByText("Fido")).toBeInTheDocument(); }); });Cualquier consejo sobre cómo puedo resolver esto es apreciado.
La mayoría de las soluciones anteriores parecen abordar Babel o ESLint. Si tiene este problema con tslint y Typescript puro, es suficiente agregar: @testing-library/jest-dom a sus tipos
De modo que en su tsconfig.json :
"types": ["node", "jest", "@testing-library/jest-dom"],También tenga en cuenta que debe incluir esa biblioteca en Jest. En lugar de importarlo en cada archivo, es mejor hacerlo dentro del archivo de configuración:
setupFilesAfterEnv: [ "<rootDir>/support/setupTests.js" ], y luego en el archivo setupTests.js :
import '@testing-library/jest-dom/extend-expect' o use to require() si usa JavaScript o una configuración diferente.
Asegúrese de que los tipos correctos estén instalados en su proyecto. es decir
npm i -D @testing-library/jest-dom@^4.2.4
Según mi experiencia, los tipos de mecanografiados parecen faltar en la versión 5.x
las anulaciones de eslint no ayudaron, pero
import '@testing-library/jest-dom/extend-expect'en el comienzo del archivo de prueba lo resolvió.
Encontré esta respuesta aquí y también en el archivo de configuración de broma de la aplicación de inicio de reacción oficial de Facebook. Espero que ayude.