image

Access unlimited bootcamps and 650+ courses

50
%OFF
Article image
Eliezer Silva
Eliezer Silva19/07/2023 20:26
Share

Teste unitário e o padrão AAA(Arrange, Act, Assert)

  • #Testes unitários
  • #Java

Teste unitário é um tipo de teste de software onde uma pequena parte da aplicação, chamada de unidade, podendo ser uma função, classe ou método, é testada individualmente. Esse teste é realizado durante o processo de desenvolvimento de um software com o objetivo de verificar se cada unidade está funcionando como esperado.

Benefícios dos testes unitários

Apesar de serem odiados, esses testes ajudam, e muito, os desenvolvedores a realizar mudanças no código devido à pouca dependência da unidade testada, além de contribuir com a melhora da qualidade do código escrito.

Outra das vantagens do teste unitário é a descoberta de erros/falhas ainda na fase inicial do desenvolvimento da aplicação. O custo (esforço, tempo…) para detectar e corrigir os erros encontrados nessa fase é muito menor comparado à fases posteriores. Bem como a reutilização do código, já que ele deve ser escrito em módulos para poder ser testado.

image

O padrão AAA (Arrange, Act, Assert)

O padrão AAA é uma maneira comum de escrever testes de unidade para um método em teste. Sua estrutura de desenvolver um teste seguindo 3 passos facilita a leitura e compreensão do código.

O primeiro passo (Arrange) é realizar a preparação do teste, pode ser inicializando objetos, declarando variáreis que serão passadas como parâmetros para o método ou função testada, etc.

O segundo passo(Act) é quando o método/função testada é chamada e executada com os objetos ou parâmetros do passo anterior.

No último passo(Assert), é verificado se os resultados obtidos batem com os resultados esperado.

Para o exemplo, iremos utilizar a linguagem Java com a ferramenta de teste JUnit.

public class Calculo{

public int sum(int a, int b) {
  return a + b;
}
}

No código acima foi criada uma classe com o nome Calculo contendo apenas um método chamado sum, que recebe dois inteiros como parâmetro e retorna um inteiro com a soma dos dois valores.

import static org.junit.Assert.*;

import org.junit.Test;
public class sumTeste {
@Test
 public void sumtest() {
//Arrange
  Calculo c = new Calculo();
  int v1 = 10;
  int v2 = 10;
  int result;
 
//Act
  result = c.sum(v1, v2);

//Assert
  assertEquals(20, result);

 }
}

Já no código acima foi criada uma classe de teste chamada sumtest onde será executado nosso teste unitário. Podemos ver os 3 passos do padrão AAA, sendo primeiro criado um objeto e algumas variáveis que serão passadas como parâmetro, além de uma variável que receberá o resultado do método testado (Arrange). Em seguida (Act), é chamado o método sum do objeto criado no passo anterior e o resultado é atributo na variável result. Por fim, no passo Assert, o resultado é comparado com o valor esperado.

Fonte: Medium

Share
Comments (0)