Junior
Cuéntenos sobre el principio Triple A en las pruebas (Arrange, Act, Assert).
sobes.tech AI
Respuesta de la IA
El principio Triple A (Arrange,Act,Assert) ayuda a estructurar pruebas unitarias para mejorar su legibilidad y mantenibilidad. Divide cada prueba en tres fases claras:
-
Arrange (Preparación):
- En esta fase se configura el entorno de prueba, se inicializan los objetos necesarios, se crean fijaciones, mocks o stubs para aislar el componente que se prueba.
- Se definen los datos de entrada para la función o método probado.
-
Act (Acción):
- Se realiza la acción principal que se desea probar.
- Esto puede ser una llamada al método probado, realizar una operación específica.
-
Assert (Afirmación):
- Se verifica el resultado de la acción.
- Se compara el resultado esperado con el real.
- Se utilizan métodos de afirmación (assertions) del framework de pruebas (por ejemplo, JUnit, NUnit, pytest) para verificar condiciones.
Ejemplo en Python usando pytest:
# app.py
class Calculator:
def add(self, a, b):
return a + b
# test_calculator.py
import pytest
from app import Calculator
def test_add_positive_numbers():
"""
Prueba de suma de dos números positivos.
"""
# Arrange
calculator = Calculator()
num1 = 5
num2 = 3
expected_result = 8
# Act
actual_result = calculator.add(num1, num2)
# Assert
assert actual_result == expected_result, f"Expected {expected_result}, but got {actual_result}"
def test_add_negative_numbers():
"""
Prueba de suma de dos números negativos.
"""
# Arrange
calculator = Calculator()
num1 = -5
num2 = -3
expected_result = -8
# Act
actual_result = calculator.add(num1, num2)
# Assert
assert actual_result == expected_result, f"Expected {expected_result}, but got {actual_result}"
Ventajas de usar Triple A:
- Legibilidad: La estructura de la prueba se vuelve más comprensible, facilitando su lectura y entendimiento.
- Mantenibilidad: La clara separación de fases simplifica hacer cambios y corregir errores en las pruebas.
- Enfoque: Cada fase se centra en su tarea específica, ayudando a escribir pruebas más dirigidas.
- Estandarización: La implementación de Triple A en el equipo fomenta la uniformidad en la escritura de pruebas.