JUnit Teste parametrizado 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 parametrizado JUnit teste

O cรณdigo a seguir 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 parametrizado JUnit Testar

Passo 2) Crie uma classe de teste parametrizada

Etapas para criar um parametrizado JUnit Testar

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รก BlocoJunit4ClassRunner por padrรฃo.

Esta classe รฉ responsรกvel pela execuรงรฃo de testes com uma nova instรขncia de teste. ร‰ responsรกvel por invocar JUnit mรฉtodos de ciclo de vida, como configuraรงรฃo (associar recursos) e desmontagem (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 parametrizado JUnit Testar

Passo 4) Crie um mรฉtodo estรกtico que gere e retorne dados de teste.

Etapas para criar um parametrizado JUnit Testar

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: Utilizar painรฉis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefรญcios: @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 vocรช encontra

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 parametrizado JUnit Testar

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 parametrizado JUnit Testar

Explicaรงรฃo do cรณdigo:

  • Linha de cรณdigo 8: Declarando o mรฉtodo principal da classe test que executarรก nosso JUnit teste.
  • 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 parametrizado JUnit Testar

Veja o resultado no console, que mostra a adiรงรฃo de dois nรบmeros: -

JUnit Teste parametrizado

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

Resuma esta postagem com: