Junior
Fale sobre o princípio Triple A nos testes (Arrange, Act, Assert).
sobes.tech IA
Resposta da IA
O princípio Triple A (Arrange,Act,Assert) ajuda a estruturar testes unitários para melhorar a sua legibilidade e manutenção. Divide cada teste em três fases claras:
-
Arrange (Preparar):
-
Act (Ação):
- A ação principal a testar é realizada.
- Isto pode ser uma chamada ao método testado, ou a execução de uma operação específica.
-
Assert (Verificação):
- O resultado da ação é verificado.
- O resultado esperado é comparado com o real.
- São utilizados métodos de afirmação (assertions) do framework de testes (por exemplo, JUnit, NUnit, pytest) para verificar condições.
Exemplo em 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():
"""
Teste da soma de dois 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():
"""
Teste da soma de dois 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}"
Vantagens do uso do Triple A:
- Legibilidade: A estrutura do teste torna-se mais compreensível, facilitando a sua leitura e compreensão.
- Manutenção: A clara separação de fases simplifica a realização de alterações e correções de erros nos testes.
- Foco: Cada fase concentra-se na sua tarefa específica, ajudando a escrever testes mais direcionados.
- Padronização: A implementação do Triple A na equipa promove a uniformidade na escrita de testes.