Skip to main content

Primeros pasos con pruebas

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Describir el fin y las diferencias entre prueba de unidad y prueba de extremo a extremo.
  • Explicar la función de pruebas unitarias para componentes web Lightning.

Requisitos

En este módulo, desarrolla componentes web Lightning y pruebas unidad en un proyecto de Salesforce DX utilizando el editor de Visual Studio Code. Si no está familiarizado con componentes web Lightning, Salesforce DX o el uso de Visual Studio Code para el desarrollo de Salesforce, le recomendamos completar los proyectos Inicio rápido: Salesforce DX, Inicio rápido: Visual Studio Code para el desarrollo de Salesforce e Inicio rápido: Componentes web Lightning antes de continuar.

Por qué probar es importante

“Cualquier fallo no detectado en la fase de diseño costará diez veces más tiempo detectarlo en la fase de codificación y diez veces más tiempo en la fase de depuración.” 

—Dr. Nikolai Bezroukov, The Art of Debugging

Búsqueda de fallos de software representada por una lupa sobre una mariquita

La depuración y las pruebas están relacionadas pero son procesos distintos en el desarrollo de software. Las pruebas intentan encontrar y reportar errores. La depuración intenta identificar la causa de esos errores y solucionarlos. Además, según Dr. Nikolai Bezroukov, cuanto antes encuentre y aplaste fallos en su código, mejor.

En un mundo ideal, el software no tendría ningún fallo. Pero la realidad es que cometemos errores, los requisitos se malinterpretan y las aplicaciones se acostumbran en formas que nunca anticipábamos. Las pruebas ayudan a descubrir estos problemas de modo que se puedan solucionar. Cuanto antes encuentre fallos, “menos cuestan”. Una vez que los fallos llegan a las siguientes etapas del desarrollo (o en el pero de los casos, a producción), más personas y procesos se ven involucrados para identificarlos y solucionarlos.

Existen dos tipos de pruebas que se llevan en general a cabo para aplicaciones de Salesforce: pruebas unitarias y pruebas de extremo a extremo. Sus diferencias están en su ámbito y su fin.

Pruebas unitarias

Las pruebas unitarias se centran en probar partes pequeñas y discretas de funciones en una aplicación. Para facilitar las pruebas unitarias, cree su aplicación utilizando unidades pequeñas con capacidad de prueba en vez de redactar un solo método largo o clase de Apex. Esto significa modularizar el código en métodos discretos que se pueden probar de forma independiente. Del mismo modo, en vez de redactar un solo componente Lightning masivo para una aplicación, modularice las funciones en componentes más pequeños que se pueden probar de forma independiente. Las pruebas unitarias breves y rápidas que son fáciles de ejecutar animan los desarrolladores a ejecutarlas como parte de su proceso de integración continua y desarrollo. Esto garantiza que los fallos se identifiquen y se solucionen cuanto antes. Asegúrese de consultar desarrollo basado en pruebas (TDD) para obtener más perspectivas en este proceso.

Pruebas de extremo a extremo

Las pruebas de extremo a extremo se centran en probar toda una aplicación o recorrido de usuario. Para aplicaciones web, esto a menudo implica pruebas en un navegador para validar cómo funciona el código y los componentes en una página juntos en un entorno de prueba, como una organización borrador o un entorno sandbox.

Las pruebas de extremo a extremo tienden a ser más lentas que las pruebas unitarias porque cubren más funciones de la aplicación por prueba. Las pruebas de extremo a extremo son también menos fiables que las pruebas unitarias debido a las incoherencias aleatorias de un entorno en vivo, como latencia de red, memoria caché, dependencia de sistemas externos, problemas de infraestructura, etc. Estas incoherencias pueden hacer que una prueba pase una vez y falle la siguiente, conocido como una prueba con oscilaciones. A pesar de estos inconvenientes, las pruebas de extremo a extremo proporcionan a una validación valiosa y más realista de la aplicación y su integración gana más puntos que pruebas unitarias.

Pruebas unitarias frente a Pruebas de extremo a extremo

Echemos un vistazo a cómo funcionan las pruebas unitarias y las pruebas de extremo a extremo en la práctica. Como ejemplo, utilizaremos el componente web Lightning api-property desde el repositorio lwc-recipes, un conjunto de ejemplos de código para componentes web Lightning en la plataforma Salesforce.

El componente <c-api-property> está compuesto de componentes of (1) <lightning-card>, (2) <lightning-input> y (3) <c-chart-bar>.

  1. El componente <lightning-card> muestra el título ApiProperty y contiene los otros dos componentes.
  2. El componente <lightning-input> gestiona la entrada de usuario de un número y difunde eventos de cambio de valor.
  3. El componente <c-chart-bar> representa un gráfico de barras basado en su valor de porcentaje.

El componente Propiedad de API con sus componentes secundarios resaltados para más hincapié

Cada uno de estos tres componentes tiene su propia API pública, estado interno y comportamiento. Además, cada uno de estos componentes puede tener sus propias pruebas unitarias para validar su funcionamiento de manera aislada a los otros componentes. De hecho, las pruebas unitarias para el componente <c-api-property> pueden suponer que los componentes <lightning-card>, <lightning-input> y <c-chart-bar> tendrán el desempeño previsto, o puede imitar sus comportamientos para simular diferentes escenarios bajo varias condiciones.

En este ejemplo, una prueba de extremo a extremo podría cargar el componente <c-api-property> en una página del navegador, ingresar valores de porcentaje en el campo de entrada y afirmar que el gráfico de barras se representa en consecuencia. Como una prueba de extremo a extremo, no hay imitación de datos o comportamientos; está confirmando cómo funcionan los tres componentes juntos como lo harían cuando se implementan en sus usuarios.

Resumen

La siguiente tabla es una comparación de alto nivel de los pros y los contras de las pruebas unitarias y las pruebas de extremo a extremo. 


Pruebas unitarias
Pruebas de extremo a extremo
Las pruebas se ejecutan rápido

No
Las pruebas son fiables

No
Las prueba son precisas y le permiten identificar problemas exactos

No
Las pruebas cubren varias funciones de una aplicación a la vez
No

Simula un usuario real
No

Ahora que conoce más las diferencias entre pruebas unitarias y pruebas de extremo a extremo, veamos cómo se realizan en la práctica. El resto de este módulo se centra en componentes web Lightning de pruebas unitarias.

Recursos

¡Siga aprendiendo gratis!
Regístrese para obtener una cuenta y continuar.
¿Qué hay para usted?
  • Consiga recomendaciones personalizadas para sus objetivos profesionales
  • Practique sus aptitudes con retos prácticos y pruebas
  • Siga y comparta su progreso con empleadores
  • Póngase en contacto para recibir asesoramiento y oportunidades laborales