Cómo probar sitios de reaccionar y aplicaciones

Sep 10, 2025
Cómo
Test React
[dieciséis] (Crédito de la imagen: Futuro)

Si desea saber cómo probar reaccionar, está en el lugar correcto. ¿De verdad sabes que tu código hace lo que se supone que debe hacer? ¿Lo has probado en el navegador? ¿Qué pasa si no lo has hecho, o no puedes probar todo, y se rompe en la producción?

Una biblioteca de pruebas es un grupo de utilidades que los desarrolladores utilizan para escribir pruebas individuales en los componentes de la aplicación. Algunas de las partes principales de una prueba son:

  • Descripción: describe cuál es la prueba
  • Utilice / Render: Utiliza el componente en un entorno donde se puede probar
  • Burlón: Crea funciones de simulación, para que puedas revisar tus suposiciones.

En el transcurso de este artículo, voy a explorar algunos ejemplos de la biblioteca de pruebas de reacción para ayudarlo a comenzar con esta valiosa forma de mejorar la robustez de su producción de código, además de garantizar que su código no lanza Hasta cualquier sorpresa desagradable una vez que entra en producción.

¿Quieres más recursos útiles? Aquí hay un resumen de los mejores. Herramientas de diseño web Alrededor de eso te ayudará a trabajar más inteligente. O si necesita una máquina nueva, intente este rodeo de la Las mejores computadoras portátiles para la programación. . O si estás construyendo un nuevo sitio, es posible que necesites un gran Creador de sitios web .

01. Comenzar con reaccionar la biblioteca de pruebas

Voy a utilizar la aplicación de reacción de creación para esta demostración porque ya viene preconfigurado con la biblioteca de pruebas. Si está utilizando Gatsby o una configuración personalizada, puede haber alguna configuración que debe ejecutarse antes de comenzar a usar la biblioteca de pruebas.

Para comenzar, vamos a crear una nueva aplicación. Si ya tiene una versión reciente de NOde.js, puede ejecutar el siguiente comando sin instalar nada más a nivel mundial:

[sesenta y cinco]
npx create-react-app netmag-javascript-testing

02. Decidir qué probar.

Imagínenos que tenemos un componente simple, di un botón con algún estado. ¿Cuáles son algunas de las cosas que necesitan pruebas en un componente como este?

La aparición del componente:

No queremos que nada cambie inesperadamente después de que hemos escrito nuestro componente. Así que vamos a escribir una prueba de instantáneas para capturar cómo se hace. Luego, si algo cambia, lo veremos rápidamente sin una prueba manual o visual. Esto es ideal para los componentes que consisten en muchos componentes más pequeños: puede ver rápidamente cuando (y dónde) su apariencia ha sido afectada.

Las diferentes ramas que hacen:

Debido a que podríamos tener dos o más salidas diferentes, necesitamos probarlo, lo hace que todos ellos correctamente, no solo uno de ellos. Por lo tanto, necesitamos simular un evento de clic y tener otra prueba de instantáneas para la forma en que se realiza después de que se haya ejecutado esta sucursal del código.

Esas funciones se llaman como se espera:

Queremos asegurarnos de que el código que escribimos para llamar a otra función funciona, ya que asumimos que lo hará. Pero como esa función es una dependencia externa, no queremos probar eso aquí. Nuestras pruebas deben encapsular solo la funcionalidad que queremos que ellos.

[sesenta y cinco]

03. Escribe tu primera prueba

Test React

(Imagen: © Ben Lea)

Vamos a escribir nuestra primera prueba. Crea un nuevo archivo llamado MyComponent.Unit.test.js en la misma carpeta que el componente. Al agregar Test.js al final, será elegido automáticamente por la biblioteca de pruebas. Los contenidos de ese archivo están a continuación:

[sesenta y cinco]
 Importar reaccionar de 'reaccionar'
Importar {Render} de '@ Testing-Biblioteca / Reaccionar'
Importar MyComponent de './mycomponent'
Describe ('The & lt; MyComponent / & GT;', () = & gt; {
    // las pruebas van aquí
}) 

Lo primero en lo que quiero llamar su atención es el describir() Función, que toma dos argumentos: la primera es una cadena que puede usar para describir mejor, como una cadena de texto, lo que va a hacer su prueba. En nuestro caso, simplemente hemos dicho que debería rendirlo. Esto es muy útil cuando alguien más mira su código o tiene que recordar lo que hizo en una etapa posterior. La escritura de buenas declaraciones de describa es una forma de documentación del código y otra buena razón para escribir pruebas.

El segundo argumento son tus pruebas. los describir() La función ejecutará todas estas pruebas una después del otro.

[sesenta y cinco]

04. Usa la función de limpieza

Vamos a introducir una función de ayuda llamada antes de que () . Tenemos que usar esto porque cada vez que hacemos algo con el componente, queremos una copia fresca sin los accesorios que previamente habíamos pasado a que aún existe en el componente. O podríamos necesitar reinvertir el componente: antes de que () Lo hace para nosotros y podemos pasarlo la función de limpieza.

[sesenta y cinco]
 Importar {Render, Limpieza} de '@ Testing-Biblioteca / Reaccionar'
...
describir ('El componente debe rendir', () = & gt; {
  antes de la limpieza
} 

05. Escribe una prueba de instantáneas

Test React

(Imagen: © Ben Lea)

En este paso, vamos a 'montar' nuestro componente (o hacerlo).

[sesenta y cinco]
 Describa ('El componente debe rendir', () = & gt; {
  antes de la limpieza
  ('Renders con los accesorios básicos', () = & gt; {
    Render (& lt; MyComponent / & GT;)
  })
} 

Este render nos da acceso a todas las propiedades renderizadas del componente compilado. Podría ser bueno dejar caer esto en un console.log () Así que puedes ver más claramente lo que hace.
Si lo hace, verá que hay algunas propiedades útiles que podemos aprovechar aquí. Voy a hacer una afirmación (hacer una declaración de prueba) y probarlo extrayendo el contenedor. El contenedor 'contiene' los nodos DOM (todos los HTML) asociados con el componente.

[sesenta y cinco]
 ('Haz clic en los accesorios básicos', () = & gt; {
    const {contenedor} = render (& lt; miccomponent / & gt;)
}) 

Ahora tenemos acceso al contenedor, ¿cómo puedo decir que se representa de acuerdo con mi aseveración? Añadiendo una prueba de instantáneas.

Piense en una instantánea como una fotografía. Se necesita una instantánea de nuestro componente en un punto específico en el tiempo. Luego, cuando hacemos alteraciones al código, podemos ver si aún coincide con la instantánea original. Si lo hace, podemos estar seguros de que nada ha cambiado en el componente. Sin embargo, si no lo hace, podríamos haber descubierto un problema que se originó en otro componente, uno que podríamos no haber visto anteriormente:

[sesenta y cinco]

06. Pruebas de prueba

Los accesorios, o propiedades, de un componente pueden ser probados con instantáneas, también. Prueba de los diferentes accesorios que proporciona a su componente le dará mayor cobertura y confianza. Nunca se sabe cuándo un requisito se refiere a los accesorios de su componente, se refactores y la salida final cambiará.

Agregue el siguiente objeto a la parte superior de su archivo:

[sesenta y cinco]
 Const LightProperties = {
    BackgroundColour: 'White',
    TextColour: 'DarkBlue'
} 

Definimos las propiedades en un objeto y luego usamos el operador de distribución (tres puntos seguidos por el nombre del objeto: ... lightproperties) Porque solo podemos pasar un argumento en cuando rindemos de esta manera. También es útil ver qué propiedades estás pasando aislando:

[sesenta y cinco]
 ('Haz clic en los accesorios básicos', () = & gt; {
        const {contenedor} = render (& lt; miccomponent / & gt;
      )
     esperar (contenedor) .tomatchsnapshot ()
    })
    ('Renders con la versión de la versión ligera', () = & gt; {
        const {contenedor} = render (
            & lt; MyComponent {... lightproperties} / & gt;
        )
        esperar (contenedor) .tomatchsnapshot ()
    })

07. Cambios de prueba en la UI.

Imagine Nuestro componente tiene un botón y desea asegurarse de que algo suceda cuando se haga clic en el botón. Podría pensar que desea probar el estado de la solicitud; Por ejemplo, podría ser tentado a probar que el estado ha actualizado. Sin embargo, ese no es objeto de estas pruebas.

Esto nos introduce a un concepto importante en el uso de una biblioteca de pruebas: no estamos aquí para probar el estado o la forma en que funciona nuestro componente. Estamos aquí para probar cómo la gente va a usar el componente y que cumple con sus expectativas.

Entonces, si el estado ha actualizado o no es inmaterial; Lo que queremos probar es cuál es el resultado de esa prensa de botones.

Imaginemos que estamos probando el resultado de una función que cambia la UI del modo oscuro al modo de luz. Aquí está el componente:

[sesenta y cinco]
 Const ModeToggle = () = & gt; {
    Const [MODO, SetMode] = USESTATE ['LIGHT']
   const toggletheme = () = & gt; {
     if (theme === 'light') {
       settheme ('oscuro')
     } demás {
       settheme ('luz')
     }
   }
    regreso (
        & lt; togglebutton data-testid = "modo-toggle" lightmode = {modo} onlick = {togglemode} & gt;
          Modo de alternar
        & lt; / togglebutton & gt;
    )
}

Primero, deberíamos agregar un ID de prueba al botón para que podamos encontrarlo en la fase de render:

[sesenta y cinco]
 Retorno (
    & lt; togglebutton
      Data-testid = "modo-toggle"
      lightmode = {modo}
      onlick = {togglemode}
     & gt;
      Modo de alternar
    & lt; / togglebutton & gt;

¿Notaste que agregamos el nuevo atributo? Data-test al botón? Así es como podrías probar eso. Primero, importe una nueva función, FUCHEVENT de la biblioteca de pruebas:

[sesenta y cinco]
 Importar {Limpieza,
          FUCHEVENT,
          hacer
} De '@ Testing-biblioteca / reacción'

Podemos usar esa función para probar, hay cambios en la UI y que esos cambios son consistentes:

[sesenta y cinco]
 ('Haz clic en los accesorios básicos', () = & gt; {
    const {contenedor} = render (& lt; togglebutton / & gt;
  )
 esperar (contenedor) .tomatchsnapshot ()
})
('Haz clic en la UI de la luz en el clic', () = & gt; {
    const {contenedor, getbytestid} = render (& lt; togglebutton / & gt;)
    FurEevent.Hick (GetBytestid ('Mode-Toggle'))
    esperar (contenedor) .tomatchsnapshot ()
}) 

Esto es genial: no tenemos que irnos manualmente al sitio y mirar alrededor, luego hacer clic en el botón y mirar alrededor de una segunda vez, durante la cual, podría admitir, es probable que lo olvides. Ahora podemos tener confianza en que, dada la misma entrada, podemos esperar la misma salida en nuestro componente.

Cuando se trata de identificaciones de prueba, personalmente me disgusto usar Data-test Para encontrar algo en el Dom. Después de todo, el objeto de las pruebas es imitar lo que el usuario está haciendo y para probar lo que sucede cuando lo hacen. Data-test Se siente como un poco de trampa, aunque los datos de datos probablemente serán útiles para su ingeniero de control de calidad (consulte el boxut el papel de los ingenieros de garantía de calidad).

En su lugar, podríamos usar getbytext () y pasar en el texto de nuestro botón. Ese método sería mucho más específico de comportamiento.

[sesenta y cinco]

08. Mock y espía la función.

A veces, podríamos necesitar probar una llamada a una función, pero esa función está fuera del alcance de la prueba. Por ejemplo, tengo un módulo separado que contiene una función que calcula el valor de PI a un cierto número de decimales.

No necesito probar cuál es el resultado de ese módulo. Necesito probar que mi función hace como se esperaba. Para obtener más información sobre por qué es así, consulte la unidad de caja y las pruebas de integración. En este caso, podríamos "simular" esa función:

[sesenta y cinco]
 const getpivalue = jest.fn ()
IT ('Llama la función en Click', () = & gt; {
    const {contenedor, getbytestid} = render (& lt; togglebutton / & gt;)
    FurEevent.Hick (GetBytestid ('Mode-Toggle'))
    esperar (getpivalue) .toHaveBeEncalledTimes (1)
  )
}) 

La función tohavencalledtimedtimed () es una de las muchas funciones de ayuda en la biblioteca de pruebas que nos permiten

Para probar la salida de las funciones. Esto nos permite no solo alcanzar nuestras pruebas solo al módulo que queremos probar, sino que también significa que podemos "espiar" o ver cuál hace nuestra función cuando llama esa función.

[sesenta y cinco]

09. Iniciar pruebas reaccionar aplicaciones

Test React

(Imagen: © React Testing Biblioteca)

Las pruebas de escritura pueden parecer un poco desalentador para empezar. Espero que este tutorial le haya dado un poco más de confianza para probarlo. Desde que comencé a escribir pruebas para mis aplicaciones, realmente no puedo volver: puedo descansar más fácil, sabiendo que me voy detrás de un legado mucho mejor para aquellos que usarán mi trabajo en el futuro.

Para obtener más ideas sobre cómo probar sus componentes, visite Reaccionar la biblioteca de pruebas o Reaccionar ejemplos de prueba . Si está buscando algunos cursos para ayudarlo a comenzar, el uno por kent c dodds (que escribió y mantiene reaccionar la biblioteca de pruebas) es popular. Tambien disfruté Este en tutoriales de nivel. Es el que me hizo empezar a escribir pruebas para mi código.

[sesenta y cinco]

Recuerde, si está construyendo un sitio complejo, querrá obtener su Alojamiento web SERVICIO DE SERVICIO EN. Y si ese sitio es probable que contenga muchos activos, almacenándolos confiables almacenamiento en la nube Es crucial.

Este contenido apareció originalmente en revista neta . Leer más de nuestros Artículos de diseño web aquí. .

Leer más:

  • HTML6: ¿Qué es y cuándo llega?
  • Escribe código HTML más rápido
  • Diseño de la aplicación móvil: Guía de un principiante
[sesenta y cinco]

Cómo - Artículos más populares

Krita Tutorials: Aprenda lo básico del software de arte digital

Cómo Sep 10, 2025

Página 1 de 2: Tutorial de Krita: Encuentre su camino Tutorial de Krita: Encuentre su camino Tutorial..


Cómo crear arte Pin-Up

Cómo Sep 10, 2025

Los orígenes del arte de Pin-Up se pueden rastrear de regreso a finales del siglo XIX, pero se hizo más extendida en las décadas de 1940 y 1950, a menudo apareciendo en carteles y calendar..


Cómo cambiar la fuente en su bio de Twitter

Cómo Sep 10, 2025

[dieciséis] Hay muchas personas en Twitter, 261 millones de cuentas de Twitter la última vez que revisamos. Y eso significa que puede..


Comienza con RedUX Thunk

Cómo Sep 10, 2025

[dieciséis] El estado es una gran parte de una solicitud de reacción, por lo que REDUX se combina comúnmente con él. Ese datos a me..


Cómo lograr la escala en tus pinturas

Cómo Sep 10, 2025

En este tutorial, pasaremos algunos principios básicos que ayudarán a comunicar la idea de a gran escala en sus propias piezas. Estoy usando lápices y aceites para este tutorial, pero tamb..


caché en el refuerzo del rendimiento de la BBC

Cómo Sep 10, 2025

[dieciséis] El año pasado, durante una sesión de prueba de usuario para la aplicación BBC News, uno de los usuarios hizo un comenta..


Descargar archivos para 3D World 232

Cómo Sep 10, 2025

[dieciséis] Para descargar los archivos adjuntos para el número 3D del mundo 3D, simplemente haga clic en el enlace a continuación, ..


Cómo pintar una escena tradicional de la aldea británica

Cómo Sep 10, 2025

[dieciséis] Las iglesias medievales, los pastos verdes y las casas de la granja con tapa de pizarra son sinónimo de los pueblos que c..


Categorías