No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Escribir Pruebas Unitarias con GitHub Copilot

4/13
Recursos

Exploraremos cómo emplear Copilot y los Chats GPT para impulsar proyectos de desarrollo en React y JavaScript, tomando como ejemplo el desarrollo y las pruebas de un componente existente, así como su optimización.

¿Cómo Integrar Copilot en Proyectos de React y JavaScript?

Primero, es necesario configurar el entorno para que funcione ejecutando pruebas con Yes y React Testing Library. Con un proyecto en React preparado en la carpeta Utils, se crea una utilidad que calcula el precio total de los productos.

¿Cómo Crear y Probar las Utilidades?

Primero, se crea una carpeta y un archivo relacionado con las pruebas. Después, se importa la función para que Copilot tenga el contexto de lo que se va a probar.

Copilot comenzará a autocompletar lo que serían las pruebas, sin embargo, es importante revisar el código para asegurar que esté completo y correctamente escrito. Esto incluye añadir paréntesis para finalizar las líneas de código y corregir cualquier importación errónea.

¿Qué Pruebas Propone Copilot?

Con Copilot, las pruebas propuestas incluyen: * Retornar cero cuando ningún producto es pasado. * Calcular el total de un solo producto. * Retornar el precio de múltiples productos.

El proceso se repite hasta que todas las pruebas funcionen correctamente.

¿Cómo Utilizar TDD (Test Driven Development) Con Copilot?

Aparte de probar funciones existentes, se puede utilizar TDD para crear nuevas funciones a partir de las pruebas. Por ejemplo, al crear un archivo de test para fechas y definir una función para comparar fechas, Copilot sugiere autocompletar para probar diferentes escenarios, tales como:

  • Retornar cero cuando ninguna fecha es pasada.
  • Retornar cero cuando una fecha no es válida.
  • Retornar uno cuando es válida.

Al ser más específicos en las instrucciones para Copilot, se pueden generar resultados más alineados con los requerimientos del proyecto.

¿Cómo Probar Componentes de React Con Copilot?

Copilot también puede ser aplicado para probar componentes de React, como el componente OrderCard. Sin embargo, es importante tener cuidado con las aserciones generadas por Copilot y revisar que la lógica y los propósitos del test se correspondan con los requisitos del componente.

Finalmente, es posible agilizar el desarrollo de pruebas unitarias utilizando Chats GPT, brindando instrucciones para las pruebas y pegando el componente a probar. Es relevante mencionar que con Chats GPT se pueden probar ambas propiedades al mismo tiempo, en vez de probar cada una por separado.

El uso de estas herramientas de inteligencia artificial para acelerar proyectos de desarrollo en React y JavaScript añade un valor significativo a la eficiencia y precisión de las pruebas, pero siempre es importante mantener un sentido crítico y hacer revisiones adicionales.

Aportes 18

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cualquier IA como Copilot o ChatGPT pueden tener alucinaciones por eso es importante tener contexto y conocimiento sobre el lenguaje que estas usando y tener claro los requerimientos de lo que estas desarrollando.

Tambien esta: tabnine, amazon codewhisperer, codeium
phind.com me ha ayudado mucho estas últimas semanas

El Test Development Driven (TDD) incita al desarrollador primero a comprender el proceso de negocio solicitado en el requerimiento o necesidad para luego diseñar y desarrollar software que permita obtener los resultados esperados contenidos en los criterios de aceptación.

TDD me parece una gran herramienta para hacer ingeniería de prompt al desarrollar con AI pair programming con herramientas como Github Copilot ya que considero que contiene los elementos fundamentales necesarios para refinar este tipo de prompts los cuales son: especificar un objetivo concreto, expresar criterios de aceptación y proporcionar contexto.

Alucinante la forma para hacer los tests con Copilot

Las pruebas unitarias, también conocidas como “unit tests” en inglés, son un tipo de prueba en el desarrollo de software que se centra en evaluar individualmente las unidades más pequeñas de código de un programa. Una unidad de código generalmente se refiere a una función, método o procedimiento específico en un programa. El objetivo principal de las pruebas unitarias es verificar que cada unidad de código funcione correctamente de manera aislada, es decir, que produzca los resultados esperados cuando se le proporcionan entradas específicas.

Aquí hay algunas características clave de las pruebas unitarias:

  1. Aislamiento: Las pruebas unitarias se diseñan para probar una sola unidad de código a la vez, sin depender de otras partes del programa. Cualquier dependencia externa, como bases de datos o servicios web, se simula o se utilizan “dobles” (como mocks o stubs) para garantizar el aislamiento.

  2. Automatización: Las pruebas unitarias se ejecutan automáticamente mediante herramientas de prueba específicas. Esto permite una rápida detección de errores y facilita la incorporación de pruebas en el proceso de desarrollo continuo.

  3. Rapidez: Dado que las pruebas unitarias se enfocan en unidades de código pequeñas, generalmente son rápidas de ejecutar. Esto permite una retroalimentación rápida sobre la funcionalidad de las unidades individuales y facilita la detección temprana de problemas.

  4. Repetibilidad: Las pruebas unitarias deben ser repetibles, lo que significa que deberían dar los mismos resultados cada vez que se ejecuten, siempre que las entradas sean las mismas.

  5. Facilitan la refactorización: Las pruebas unitarias proporcionan un nivel de seguridad al realizar cambios en el código existente. Si todas las pruebas unitarias siguen pasando después de una refactorización, es más probable que el código siga funcionando correctamente.

  6. Documentación viva: Las pruebas unitarias también sirven como documentación viva del comportamiento esperado de una unidad de código. Otros desarrolladores pueden revisar las pruebas para comprender cómo se supone que debe funcionar el código.

En resumen, las pruebas unitarias son una práctica esencial en el desarrollo de software que ayuda a garantizar la calidad y la fiabilidad del código al verificar que las unidades de código individuales funcionen según lo previsto. Estas pruebas son una parte fundamental de la metodología de desarrollo de software conocida como Desarrollo Basado en Pruebas (Test-Driven Development, TDD) y son una práctica común en la ingeniería de software moderna.

Es importante tener en cuenta que al trabajar con IA, resulta altamente beneficioso ser detallado y específico en nuestras solicitudes.

esta tambien la AI de Bard pero parece que solo esta en version de idioma ingles

A día de hoy 10/2014, el mejor de todos es ChatGPT o1-preview, ya lo he comparado con otros, y esta por encima de todos
La meta AI viene haciendo bien las cosas.
Hola, la herramienta que he utilizado es GEMINI :)
![](https://static.platzi.com/media/user_upload/image-71118cda-be17-44f6-9bce-3e30be0f49be.jpg)Esta me ayuda bastante, BlackBox AI
Hola La pagina chat.openia.com ya no está habilitada cual es la de ahora? Si la busco por google me envia a <https://openai.com/blog/chatgpt> es la misma? Gracias
Seguramente el equipo de Platzi planifica a futuro los nuevos cursos implementando estás herramientas para documentación y nuevos cursos avanzados, me interesa saber que piensan los demás al respecto

Cuando utilicemos este tipo de tecnologías como apoyo, es esencial realizar revisiones para asegurarnos de que las acciones que están siendo realizadas tengan coherencia y sentido.

Para explorar las opciones alternativas proporcionadas por Copilot, simplemente debes ubicarte sobre el código generado y observar las diversas alternativas que esta herramienta te ofrece.

Por algún motivo se traba demasiado este video, que incomodo.