unit test react library create app reactjs unit-testing react-test-renderer

reactjs - library - snapshot testing react



ReactTestUtils ha sido movido (4)

Estoy empezando a aprender React y, mientras estaba haciendo algunas pruebas, noté dos mensajes de advertencia:

Advertencia: ReactTestUtils se ha movido a reaccion-dom / test-utils. Actualice las referencias para eliminar esta advertencia.

Advertencia: el renderizador superficial se ha movido a react-test-renderer / shallow. Actualice las referencias para eliminar esta advertencia.

No impiden que las pruebas se ejecuten ni se validen correctamente, pero siempre existe este error.

Al mirar los documentos, encontré esta página , incluso después de haber incluido las líneas que recomiendan, el mensaje de advertencia sigue apareciendo.

Estoy probando una prueba muy simple para empezar, este es mi código:

import React from "react"; import toJson from "enzyme-to-json"; import { shallow } from "enzyme"; import { About } from "./About"; describe(''Rendering test'', () => { const component = shallow(<About />); const tree = toJson(component); it(''Should render the About component'', () => { expect(tree).toMatchSnapshot(); }) it(''Should not contain an h2 element'', () => { expect( component.contains(''h2'') ).toBe(false); }) })

¿Qué debo hacer para resolver estas advertencias? Ya actualicé todos mis paquetes a las últimas versiones.


Creo que viene del uso de la función de renderización shallow de la enzima, que aún no se ha actualizado para v15.5 (aunque hay una solicitud de extracción ).

Puede intentar usar una de las otras funciones de renderizado ( render o mount ), pero esto cambiará la semántica de su prueba (y puede o no puede producir la advertencia).

Su otra opción es no usar la enzima y usar el react-test-renderer/shallow , pero la enzima API es bastante buena para probar componentes.

Mi consejo es esperar la versión de la enzima y solo vivir con la advertencia por ahora.


Seguía recibiendo la siguiente advertencia después de intentar los pasos enumerados anteriormente.

Advertencia: ReactTestUtils se ha movido a reaccion-dom / test-utils. Actualice las referencias para eliminar esta advertencia.

La actualización de la ruta en / node_modules / react-addons-test-utils / index.js resolvió esto por mí.

Antiguo:

lowPriorityWarning( false, ''ReactTestUtils has been moved to react-dom/test-utils. '' + ''Update references to remove this warning.'' ); module.exports = require(''react-dom/lib/ReactTestUtils'');

Nuevo:

lowPriorityWarning( false, ''ReactTestUtils has been moved to react-dom/test-utils. '' + ''Update references to remove this warning.'' ); module.exports = require(''react-dom/test-utils'');


Si está utilizando React 0.14 o React <15.5, además de la enzima, tendrá que asegurarse de que también tiene instalados los siguientes módulos npm si aún no lo estaban:

npm i --save-dev react-addons-test-utils react-dom

Si está utilizando React> = 15.5, además de la enzima, deberá asegurarse de que también tiene instalados los siguientes módulos npm si aún no lo estaban:

npm i --save-dev react-test-renderer react-dom