EL ALCANCE DE LAS PRUEBAS UNITARIAS

En todos los proyectos que se desarrollan dentro del ámbito empresarial (e incluso desde la educación universitaria) se deberían tener presentes las pruebas unitarias.

Entre colegas las entendemos de una forma u otra -no hemos logrado ponernos de acuerdo con una definición genérica- y esto reduce o extiende el alcance de qué es frente a nuestros clientes y, por ende, también impacta las estimaciones y planeación para la ejecución de nuestros proyectos.

Pero en sí, ¿qué es una prueba unitaria? Es probar de manera automatizada un método construido para verificar el correcto resultado de la operación que realiza. Por ejemplo, para un método con la operación suma, verifico que esté ejecutando una suma de dos más dos (2 + 2) y el resultado sea cuatro (4). O, por ejemplo, con la lógica implementada en un desarrollo, el retorno de un método booleano sea verdadero con una casuística especifica o que genere una excepción como resultado de alguna validación. Por lo tanto, es importante tener en cuenta que la unidad de código que se está probando no tenga dependencia de otra unidad de código, ya que si, por ejemplo, tenemos una petición a una base de datos o petición a un Web API o manejo de archivos, serían pruebas de integración.

En Visual Studio .Net existen diversos frameworks para realizar estos testeos unitarios: XUnit, MSUnit y NUnit. Entre estos frameworks hay similitudes en la forma de escribir las pruebas y es sencillo migrar de uno a otro, ya que en la documentación oficial de XUnit se pueden encontrar estas equivalencias cambiando algunos decoradores o sintaxis. Para otros lenguajes, como por ejemplo, Java, encontramos los frameworks Junit o TestNG, para PHP PHPUnit, entre otros.

Las pruebas unitarias están compuestas por tres etapas siguiendo el patrón de las tres 3 A’s (Arrange, Act, Assert):

  1. Arrange (Organizar): definición de variables con las casuísticas que se desea probar.
  2. Act (Actuar): es propiamente la ejecución de esa unidad de código.
  3. Assert (Afirmar): verificación del resultado de la ejecución; si lo obtenido es lo que se esperaba.

Como sugerencia, la idea sería estandarizar el nombramiento de cada una de las pruebas creadas, con el fin de identificar o determinar con el nombre, qué se está probando y el resultado que se espera.

Según Vaxi Drez, quien crea contenido en la plataforma de Udemy para desarrollo con .Net, la nomenclatura debería estar compuesta por:

La acción que se va a probar, seguido de el o los inputs que tendrá la acción que se va a probar, seguido del resultado que se espera obtener.

Acción por probar – Inputs de la acción por probar – resultado esperado

A continuación, unos pequeños ejemplos:
Método que genera una cadena cifrada mediante el algoritmo SHA256 con base en unos parámetros de entrada.

Publicado: noviembre 24, 2022

También podría gustarte

Sophos Solutions recibió tres galardones en los Premios AWS

Ser Service Partner of the Year nos motiva a seguir innovando. En Sophos estamos a la vanguardia de las nuevas tecnologías y metodologías del mercado y las adaptamos de forma ágil para nuestros clientes. Somos cocreadores de soluciones flexibles asociadas a la nube; aplicando tendencias como inteligencia artificial y Blockchain, que abren la puerta a nuevas alternativas de negocio.

Desplegando entornos de desarrollo integrado (IDE) seguros con AWS – Parte 2

Bienvenidos de nuevo, en esta entrega vamos a abordar el despliegue de nuestros entornos a una escala empresarial y agregaremos características como protección a nivel de red, aseguramiento y trazabilidad de las sesiones conectadas a nuestros IDEs, e incluso dejaremos la puerta abierta para seguir explorando y experimentando con estos servicios.

De la ingeniería química a la ciencia de datos

Cada vez es más frecuente que escuchemos términos como ciencia de datos, analítica, inteligencia artificial (IA), Machine Learning, Big Data, entre otros.

Innovar no es una responsabilidad exclusiva para líderes y emprendedores

Desde hace buen tiempo se viene hablando de la importancia de la innovación y la creatividad en diferentes entornos de nuestra sociedad, más recientemente, en el mundo de la producción de ideas, emprendimientos o startups.