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 –
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
Passo 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: 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
Passo 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 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 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
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:
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:
Veja o resultado no console, que mostra a adição de dois números: -
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