Hasta ahora, en mi serie de publicaciones sobre el desarrollo de React para WordPress, he abordado los elementos básicos Reaccion, creó las pruebas de app y broma. Jest es útil para probar los componentes React. Hay algunos grandes cubos de funcionalidad que aún no hemos visto. Específicamente, cómo cambiar el estado interno del componente con la condición, los eventos DOM y la prueba aislada de los métodos de las clases de componentes. La broma sola no puede hacer eso. Usando la enzima para las pruebas DOM, espero que ahora esté claro cómo Jest, con las pruebas predeterminadas, puede hacer una gran cantidad de cobertura de prueba. Una instantánea cubre un componente, con todos sus elementos de accesorios. Una limitación que mencioné fue que no reproduce los componentes de ningún tipo de domo, por lo que no hay forma de activar un evento. Afortunadamente, la enzima, que puede ser rodada por broma, nos permite hacer exactamente: simulamos DOM. También tiene características interesantes para verificar los accesorios y la condición de un componente o llamar directamente a los métodos de clase.
La enzima no está instalada implícitamente en Create-React-App. Para instalar enzimas y reaccionar adaptador para enzimas:
Ahora, para configurar enzimas en un archivo de prueba, importamos uno o ambos de sus rancidos, montados y superficiales, y el adaptador React. El adaptador React debe agregarse al Tribunal de Enzimas para este propósito. No uso ninguna de sus opciones. La sede de mis archivos de prueba para pruebas enzimáticas se ve así:
Los componentes de la reacción de reacción superficial frente a las profundidades para la prueba enzimática tienen dos dispositivos de reproducción: montaje y superficial. Shallow tocará superficialmente el componente, lo que significa que no jugará a ninguno de los niños. Esto lo hace más rápido que un soporte que realiza una línea profunda y, por lo tanto, reproducirá un componente y todos sus hijos. Si la limitación de superficialidad no es un problema para una prueba, entonces use superficialmente, es más rápido. Si tiene que probar a los niños de un componente, use el soporte, porque funcionará. Por ahora, usaremos superficialmente, porque solo probamos un componente. Cubriré algunos casos en los que la instalación es la mejor opción más adelante. Simular eventos de cambio de enzimas que juegan un componente con la apariencia superficial de la enzima es similar a lo que estaba haciendo antes de jugar la reacción de Jest. Pero el objeto que se devuelve es mucho más útil. Podemos usar el método Find () de la enzima, con selectores similares de JQuey para encontrar elementos en el componente presentado. Podemos afirmar valores basados en lo que encuentra o simular eventos.
Para nuestro editor de publicaciones, para encontrar la entrada, cambiarla y ver si nuestros cambios a ser administrados por los cambios se han comportado correctamente. Aquí está la prueba, iré abajo:
En la parte superior, importo mi componente y herramientas de prueba.Creamos una serie de pruebas para todos los eventos de este componente y una prueba.La publicación simulada es la misma que usé para pruebas instantáneas.Esto realmente va en el mismo archivo.Elimino esas pruebas para mayor claridad aquí.Introduje la necesidad de enzima, señalando que mis pruebas instantáneas usaron un controlador de cambios que no hicieron nada.Ahora que esas pruebas demuestran que este componente tiene los elementos de accesorios configurados correctamente para que esos cambios en la administración de los cambios, para agregar una prueba para demostrar que funciona.El beneficio de la inyección de adicción está aquí: podemos probar la actualización aislada, en un componente, cuando se representa dentro de otro componente.Cada prueba agrega varias capas de recubrimiento, sin crear un acoplamiento fuerte.
Esta vez, creemos un controlador de cambios que actualicen una variable en el alcance de la prueba. Entonces podemos asegurarnos de que haya revivido el valor correcto. Anteriormente dije que creo que un componente como este debería pasar toda la publicación actualizada, no solo el título cuando cambia. Entonces esto es parte de lo que probaremos. Probaré el valor del título. Mi gerente de modificación sorprende eso. Sin embargo, aumentemos el evento de cambio. React transmite un evento al operador de llamadas inversas. Este es un gran ejemplo de polimorfismo en la programación orientada a objetos. En React, nunca debemos llegar al DOM, sino también a la abstracción del DOM virtual. Por lo tanto, debemos interactuar con una abstracción de un evento de JavaScript que funcione de la misma manera que un evento “real” de JavaScript. Utilizo “reales” entre comillas, porque en realidad es un JavaScript abstractor sobre la API web que reacciona. Todo es una abstracción, nada es real, vivimos en una simulación. Como resultado, dejé reaccionar para lidiar con los problemas entre los navegadores. Esto también es fácil de simular eventos:
No tenemos que superar todo el evento, sino solo event.target.value. La burla manual de esta manera es limitada y es posible que desee usar Synon para que sea más fácil de administrar. Probando los bucles de enzimas anteriormente en esta publicación, creamos un componente para enumerar las publicaciones. Estará envuelto en una clase en particular. Una forma de probar esto es encontrar todos los elementos con esa clase y contar la longitud de los resultados. Recuerde, uso la palabra “clase” como en la “clase CSS”, no como en “extender la clase React.Component”. En esta prueba, uso el método Buscar para buscar elementos con una clase. De nuevo, la sintaxis es jquey. ¿También tenga en cuenta que utilicé el montaje en lugar de superficial? Por qué, superficial no jugaría los componentes del niño, lo que pruebo: cómo este componente juega a sus hijos. Hasta ahora, los componentes de estado propios, hemos analizado los componentes que no conocen su condición. Quitan y comunican los cambios a través de funciones transmitidas como accesorios. Pero el estado tiene que vivir en alguna parte. Para esto son los componentes de la clase: tratan con el estado y son conscientes de los eventos del ciclo de vida react.
Ponemos nuestras publicaciones de componentes en un componente de contenedor y usemos ese componente para administrar la condición. Tenga en cuenta que esto es React-Redu. Comprender el concepto antes de descargar la preocupación en Facebook, que en general debería ser nuestra estrategia para administrar que hay más trabajo por hacer que las horas de trabajo en un día. Además, hay una buena redención durante todo el tiempo en que Facebook me robó antes de desinstalar ese comportamiento que causa adicción al teléfono. Lo que realmente haría es dejar mi estúpido contenedor estúpido y empacarlo en un componente de orden superior o WordPress que inyecte el estado, pero esta es otra publicación de torque y también un video de la conferencia JavaScript para el WP que puede ver en YouTube. Sin embargo, los componentes de estado son útiles cuando se usan con moderación. Conviamos el componente generado por Create-React-App como una “aplicación” en una lista de contenedores para publicar. Debido a que comencé desde la parte más pequeña, la publicación, luego trabajé desde allí, la lista de publicaciones y ahora la lista de aplicaciones, esto debería ser bastante simple. Todos los pequeños detalles ya están cubiertos. No comenzamos con una amplia gama de publicaciones y diseñamos varios componentes simultáneamente. En cambio, esperamos hasta que tengamos todos los bloques construidos antes de ensamblarlos.
Comencemos agregando una condición al constructor de clases, con publicaciones como una matriz vacía.
Se espera que mi componente de publicación en una matriz que no esté vacía. Qué hacer cuando no hay publicaciones no es su preocupación. Entonces, en el método Render, quiero usar un condicional JSX para mostrar solo las publicaciones cuando la matriz no está vacía: aquí está todo mi componente:
Probar la condición de los componentes de reacción enzimática antes de hablar sobre cómo poner una vez en un estado, para asegurarse de que, una vez que lo hagamos, funcione correctamente. Una cosa seguida. Lo bueno de la enzima es que puede cambiar directamente la condición y también leer la condición de un componente.
Básicamente hablando, esto significa que podemos probar si este componente funcionará cuando las publicaciones se agregan al estado, sin preocuparse por agregar publicaciones al estado. Esta es una complicación separada que llegaremos inmediatamente cuando estemos listos. Lo que tenemos que probar primero son dos cosas: nuestro bucle como publicaciones cuando los estados. Las publicaciones no están vacías y no muestra nada y no genera errores cuando State.posts está vacío. La enzima ofrece un método de configuración que nos permite llamar al conjunto de clase en nuestras pruebas. Esta clase es el mayor nivel de gestión estatal de nuestro programa, por lo que esta funcionalidad debe incluirse aquí. Veamos una prueba que agrega publicaciones a la condición y las verificaciones si se reproducen correctamente:

Esto es muy similar a la prueba que mostré anteriormente para las publicaciones. Solo nos aseguramos de que funcione correctamente en este contexto. Llamar a los métodos de clase reaccionan con la enzima para suponer que queríamos agregar la posibilidad de editar una publicación con esta aplicación. Ya tenemos un componente postetit. Pero debemos proporcionarle la publicación correcta. Agreguemos una propiedad de estado para rastrear la identificación de publicación bajo edición. No quiero copiar esa publicación de los estados. Publicaciones, solo su identificación. Encontrar la posición en el estado es una preocupación separada, que tiene su propio método. Veamos el constructor y el nuevo método: observe cómo, en el constructor, utilizamos la función de enlace para unir explícitamente el constructor al método es este. Si no hiciera esto, esto.sate, esto. Este es un paso adicional que debe hacer para cada método en una clase que use accesorios o condición. Entonces puedo usar esto y mi componente posponado en la representación:
Para probar esta funcionalidad: que se encuentra la publicación correcta y el editor se ve cuando se encuentra la publicación, agregaré una prueba de rocío. Cada uno se basa en el último. Nuestra prueba anterior cubierta la publicación. Estado para que pueda hacer lo mismo de forma segura y luego probar el siguiente paso:
Una vez que confié en que funcionó, créeme, la prueba no fue con mi primera versión de este método, puedo ir a la prueba que el editor muestra cuándo requiere el estado.
Esta prueba muestra que tenemos un editor cuando deberíamos. No muestra que el editor no muestra cuándo no debería. Entonces, esta prueba en sí misma podría ser un falso positivo. Necesitamos una prueba para la otra posibilidad de demostrar que no es un falso positivo: probar el efecto del controlador de cambio React al final, si tuviera que dibujar esta serie para otras 3-4 publicaciones. Agregaría un componente para actualizar la publicación que se actualiza y la conectaría en este componente de la aplicación. Esto requerirá un controlador de cambios en el estado de los componentes de la aplicación. Agreguemos esto y pruebemos para que podamos ver un ejemplo de cómo probar la condición, después de que se invoca el controlador para modificar un componente. Probar el manipulador de los cambios aislados, antes de implementar el componente para controlar el valor significa que el control está diseñado de acuerdo con las necesidades de la interfaz en la que es, no al revés. Además, este control se puede cambiar, siempre que funcione con el manipulador de cambios, no estamos interesados en lo que es o qué cambios más adelante. Aquí está la función simple de administrar los cambios, que podemos enviar al control:
Aquí está la prueba, que llama a ese método directo, luego prueba la condición utilizando el método de estado enzimático
¿Pero la carga de publicaciones?En un momento, debe agregar las publicaciones.Nuevamente, dejaría esto a cargo del liderazgo estatal en cualquier complejo.Pero si desea encapsular todo en esta aplicación, es por eso que necesitamos una clase, para aprovechar los eventos del ciclo de vida React.Los eventos del ciclo de vida React son como acciones de WordPress, una oportunidad para ejecutar el código en un cierto lugar en la ejecución del programa.Lo más temprano o el componente puede hacer una solicitud de datos AJAX de forma segura y la actualización es ComponentDidMount.Este es el evento que se ejecuta cuando el componente está montado en el domo.Antes de este evento, no pudimos actualizar la condición.
Prueba de componentes de reacción enzimática
Tags Prueba de componentes de reacción enzimática
homefinance blog