Teste parametrizado JUnit com exemplo usando @Parameters

Índice:

Anonim

O que é teste parametrizado no Junit?

O teste parametrizado é executar o mesmo teste repetidamente usando valores diferentes. Ajuda o desenvolvedor a economizar tempo na execução do mesmo teste, que difere apenas em suas entradas e 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 semelhante a -

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

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

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

Etapa 2) Crie uma classe de teste parametrizada

Explicação do código

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

@RunWith (class_name.class): a anotação @RunWith é usada para especificar seu nome de classe de execução . Se não especificarmos nenhum tipo como parâmetro, o tempo de execução escolherá BlockJunit4ClassRunner por padrão.

Esta classe é responsável pelos testes a serem executados com uma nova instância de teste. É responsável por invocar métodos de ciclo de vida JUnit, como configuração (recursos associados) e desmontagem (recursos de liberação).

Para parametrizar, você precisa anotar usando @RunWith e passar .class obrigatório para ser testado

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

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

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 de lista. Desde então, o tipo de retorno da entrada do método é coleção.

Linha de código 30: Usando a anotação @Parameters 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 em que cada entrada na coleção será os dados de entrada para uma iteração do teste.

Considere o elemento

{1,2,3}

Aqui

firstNumber = 1

secondNumber = 2

resultado esperado = 3

Aqui, cada elemento da matriz será passado para o construtor, um por vez, à medida que a classe é instanciada várias vezes.

Etapa 5) O código completo

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 ser executada 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 declaração assert para verificar se nossa soma é equivalente ao que esperávamos.

Etapa 6) Crie uma classe de executor de teste para executar o teste parametrizado:

Explicação do código:

  • Linha de código 8: Declarando o método principal do teste de classe que executará nosso teste JUnit.
  • Linha de código 9: Executando casos de teste usando JunitCore.runclasses, 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: Impressão do resultado bem-sucedido.

Resultado:

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

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

Resumo :

O teste parametrizado permite que o desenvolvedor execute o mesmo teste repetidamente usando valores diferentes.

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

  • @Correr com
  • @Parameters