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