Saltar al contenido principal
Página

Tema 1.1 - Patrón AAA

El patrón AAA es una muy importante y fundamental idea de cómo se realizan pruebas unitarias, la cual sugiere un proceso de 3 pasos para la construcción de una prueba unitaria, así:


  • Arrange (Organizar/Inicializar): Este es el primer paso de una prueba unitaria. Aquí se organiza la prueba, es decir, se inicializan los objetos y se establecen los valores de los datos que vamos a utilizar para la prueba.
  • Act (Actuar): Este es el paso intermedio, en el cual se ejecutará la prueba unitaria, es decir, es donde se ejecutan todos los pasos necesarios para realizar la prueba haciendo uso de las variables y objetos creados en el paso anterior.
  • Assert (Confirmar/Comprobar): Es el paso final, donde se comprueba y verifica el resultado retornado contra el resultado esperado.


Ahora que hemos entendido el concepto veamos un ejemplo práctico de la implementación de este patrón de 3 pasos:

Supongamos que se tiene la clase Calculadora y el método suma, así:

1
2
3
4
5
public class Calculadora { 
   public int suma(int numero1, int numero2) {
	return numero1 + numero2;
   }
}


Como vemos este método recibe 2 valores como parámetro y retorna su suma. Ahora veamos una prueba unitaria que aplica el patrón AAA:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
@Test
void sumaTest() {
    //Arrange
    int resultado = 0;
    Calculadora calculadora = new Calculadora();
		
    //Act
    resultado = calculadora.suma(1,2);
		
    //Assert
    assertEquals(3,resultado);
}

  

Nótese que el Arrange es la inicialización de la clase Calculadora, el Act es llevarle a la variable resultado lo que devuelva el método suma de la clase Calculadora, y el Assert que es comparar el resultado obtenido en la variable resultado y lo que esperamos obtener.


¿Qué beneficios obtenemos al implementar este patrón?

1.       Organización de la prueba

2.       Fácil entendimiento de qué hace la prueba

3.       Eliminación de duplicidades

4.       Separa claramente lo que se está probando


NOTA: Aunque el patrón AAA está orientado para definir la estructura que debería tener una prueba unitaria, esto no quiere decir que no pueda ser aplicado a otro tipo de pruebas automatizadas.

Última modificación: martes, 15 de marzo de 2022, 15:39