TestNG - Visão geral
O teste é o processo de verificação da funcionalidade de um aplicativo para garantir que ele funcione de acordo com os requisitos. O teste de unidade surge no nível do desenvolvedor, onde medidas adequadas são tomadas para testar cada entidade (classe ou método) para garantir que o produto final atenda aos requisitos.
JUnit levou os desenvolvedores a entender a utilidade dos testes, especialmente dos testes de unidade, quando comparados a qualquer outra estrutura de teste. Aproveitando uma arquitetura bastante simples, pragmática e rígida, JUnit foi capaz de "infectar" um grande número de desenvolvedores. Dê uma olhada em nosso tutorial sobre JUnit para ter uma boa compreensão de seus recursos. JUnit, ao mesmo tempo, também tem algumas deficiências, que estão listadas abaixo -
Inicialmente projetado para permitir apenas testes de unidade, agora usado para todos os tipos de teste.
Não é possível fazer testes de dependência.
Controle de configuração deficiente (setUp / tearDown).
Intrusivo (força você a estender classes e nomear seus métodos de uma determinada maneira).
Modelo de programação estática (força você a recompilar desnecessariamente).
O gerenciamento de diferentes suítes de testes em projetos complexos pode ser muito complicado.
O que é TestNG?
A definição de TestNG de acordo com sua documentação é a seguinte -
TestNG é um framework de teste inspirado em JUnit e NUnit, mas introduz algumas novas funcionalidades que o tornam mais poderoso e fácil de usar.
TestNG é uma estrutura de teste automatizado de código aberto; OndeNG significa NextGeneração. TestNG é semelhante ao JUnit (especialmente JUnit 4), mas não é uma extensão JUnit. É inspirado em JUnit. Ele foi projetado para ser melhor que o JUnit, especialmente ao testar classes integradas. O criador do TestNG é Cedric Beust .
Eliminando a maioria das limitações da estrutura mais antiga, o TestNG dá ao desenvolvedor a capacidade de escrever testes mais flexíveis e poderosos. Como ele usa fortemente as anotações Java (introduzidas no JDK 5.0) para definir testes, também pode mostrar como usar esse novo recurso da linguagem Java em um ambiente de produção real.
Recursos do TestNG
Suporta anotações.
TestNG usa mais recursos Java e OO.
Oferece suporte ao teste de classes integradas (por exemplo, por padrão, não há necessidade de criar uma nova instância de classe de teste para cada método de teste).
Separa o código de teste em tempo de compilação das informações de configuração / dados em tempo de execução.
Configuração de tempo de execução flexível.
Apresenta 'grupos de teste'. Depois de ter compilado seus testes, você pode simplesmente pedir ao TestNG para executar todos os testes de "front-end" ou testes "rápidos", "lentos", "banco de dados" etc.
Suporta métodos de teste dependentes, teste paralelo, teste de carga e falha parcial.
API de plug-in flexível.
Suporte para testes multithread.