Teste parametrizado JUnit com exemplo usando @Parameters

O que é teste parametrizado em Junit?

O teste parametrizado consiste em executar o mesmo teste repetidamente usando valores diferentes. Ajuda o desenvolvedor a economizar tempo na execução do mesmo teste, que difere apenas nas entradas e nos resultados esperados.

Usando o teste parametrizado, pode-se configurar um método de teste que recupera dados de alguma fonte de dados.

Considere um teste simples para somar números diferentes. O código pode ser parecido com –

Teste parametrizado em Junit

A abordagem acima leva a muita redundância.

Precisamos de uma abordagem simples e. Usando o teste parametrizado, você pode simplesmente adicionar um método para inserir 10 entradas de dados e seu teste será executado 10 vezes automaticamente.

Etapas para criar um teste JUnit parametrizado

Following o código mostra um exemplo de um teste parametrizado. Ele testa o método sum() da classe Aritmética:

Passo 1) Crie uma aula. Neste exemplo, vamos inserir dois números usando o método sum (int,int) que retornará a soma dos números fornecidos

Etapas para criar um teste JUnit parametrizado

Passo 2) Crie uma classe de teste parametrizada

Etapas para criar um teste JUnit parametrizado

Explicação do código

  • Linha de código 11: Anote sua classe de teste usando @runWith(Parameterized.class).
  • Linha de código 13: Declarar a variável 'firstNumber' como privada e digitar como int.
  • Linha de código 14: Declarar a variável 'secondNumber' como privada e tipo como int.
  • Linha de código 15: Declarar a variável 'expectedResult' como privada e digitar como int.
  • Linha de código 16: Declarar a variável 'airthematic' como privada e o tipo como Airthematic.

@Correr com(nome_classe.class): @Correr com a anotação é usada para especificar o nome da classe do executor. Se não especificarmos nenhum tipo como parâmetro, o tempo de execução escolherá BlockJunit4ClassRunner por padrão.

Esta classe é responsável pela execução de testes com uma nova instância de teste. É responsável por invocar métodos de ciclo de vida JUnit, como setup (associar recursos) e teardown (liberar recursos).

Para parametrizar você precisa anotar usando @RunWith e passar o .class necessário para ser testado

Passo 3) Crie um construtor que armazene os dados de teste. Ele armazena 3 variáveis

Etapas para criar um teste JUnit parametrizado

Passo 4) Crie um método estático que gere e retorne dados de teste.

Etapas para criar um teste JUnit parametrizado

Linha de código 32,33: Criando uma matriz bidimensional (fornecendo parâmetros de entrada para adição). Usando o método asList, convertemos os dados em um tipo List. Desde então, o tipo de retorno da entrada do método é coleção.

Linha de código 30: utilização @Parâmetros anotação para criar um conjunto de dados de entrada para executar nosso teste.

O método estático identificado pela anotação @Parameters retorna uma Coleção onde cada entrada na Coleção será os dados de entrada para uma iteração do teste.

Considere o elemento

1,2,3 {}

Aqui

primeiroNúmero =1

segundoNúmero=2

resultado esperado=3

Aqui, cada elemento do array será passado para o construtor, um de cada vez, à medida que a classe é instanciada várias vezes.

Passo 5) O código completo

Etapas para criar um teste JUnit parametrizado

Explicação do código:

  • Linha de código 25: Usando a anotação @Before para configurar os recursos (Airthematic.class aqui). A anotação @Before é usada aqui para executar antes de cada caso de teste. Ele contém a pré-condição do teste.
  • Linha de código 36: Usando a anotação @Test para criar nosso teste.
  • Linha de código 39: Criando uma instrução assert para verificar se nossa soma é equivalente ao que esperávamos.

Passo 6) Crie uma classe de executor de teste para executar testes parametrizados:

Etapas para criar um teste JUnit parametrizado

Explicação do código:

  • Linha de código 8: Declarando o método principal da classe test que executará nosso teste JUnit.
  • Linha de código 9: Executando casos de teste usando JunitCore.runclasses, ele tomará o nome da classe de teste como parâmetro (em nosso exemplo estamos usando Airthematic.class).
  • Linha de código 11: Processando o resultado usando o loop for e imprimindo o resultado com falha.
  • Linha de código 13: Imprimindo o resultado bem-sucedido.

Saída:

Aqui está a saída que mostra o teste bem-sucedido sem nenhum rastreamento de falha, conforme mostrado abaixo:

Etapas para criar um teste JUnit parametrizado

Veja o resultado no console, que mostra a adição de dois números: -

Teste parametrizado JUnit

Resumo

O teste parametrizado permite ao desenvolvedor executar o mesmo teste repetidamente usando valores diferentes.

Anotações importantes a serem usadas durante a parametrização

  • @Correr com
  • @Parâmetros