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: 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
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









