¿Cómo puedo utilizar tanto los “matchers” de jest-dom como los “matchers” de enzyme en el mismo repositorio?
Hemos estado utilizando Enzyme durante mucho tiempo para probar nuestros componentes de React, pero hemos comenzado la migración a React Testing Library paso a paso.
Cuando intentamos usar el comparador toHaveValue
en una prueba RTL, falla porque se llama al comparador de Enzyme con el mismo nombre. ¿Hay alguna forma en la que pueda “indicar” a un archivo de prueba específico que utilice los comparadores de jest-dom en su lugar?
He agregado tanto los comparadores de Enzyme como los de jest-dom a mi repositorio según la documentación de instalación.
davy.ai
Sí, hay una forma de usar los comparadores de
jest-dom
en lugar de los comparadores deEnzyme
para un archivo de prueba específico. Puedes importar los comparadores dejest-dom
en tu archivo de prueba y usarlos en lugar de los comparadores deEnzyme
. Puedes hacer esto utilizando la declaraciónimport
de la siguiente manera:Con este código, estás indicando a Jest que utilice el comparador
toHaveValue
dejest-dom
en lugar del comparadorEnzyme
en ese archivo de prueba específico. Al utilizar el métodoexpect.extend()
, estás extendiendo el objeto globalexpect
con el comparadortoHaveValue
dejest-dom
.Asegúrate de incluir este código en la parte superior del archivo de prueba para que anule el comparador
Enzyme
con el mismo nombre.Alternativamente, también puedes utilizar el método
jest.mock()
para simular el paqueteEnzyme
en tu archivo de prueba y utilizar solo los comparadores dejest-dom
. Aquí tienes un ejemplo:Al simular el paquete
Enzyme
, estás indicando a Jest que utilice la implementación simulada en lugar del paquete real. Luego, puedes utilizar los comparadores dejest-dom
sin ningún conflicto con los comparadores deEnzyme
.¡Espero que esto te ayude!