FrameWork TestNG : Exemplo de utilização no WSAD

Novembro 2016

Vamos usar o TestNG para verificar o funcionamento da camada de Serviço, DAO, JPA e Hibernate; para fazê-lo, nós escrevemos esta classe de teste:

package odas.toolbox.testng.test; 

import java.text.ParseException; 
import java.util.List; 

import odas.toolbox.persistance.jpa.hibernate.model.P70paramet; 
import odas.toolbox.persistance.service.IService; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.testng.annotations.BeforeClass; 
import org.testng.annotations.BeforeMethod; 
import org.testng.annotations.Test; 

public class TestNG { 
//  camada serviço 
 private IService service; 

 @BeforeClass 
 public void init() { 
  // log 
  log("init"); 
  // configuração da aplicação 
  ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml"); 
  // camada serviço 
  serviço = (IService) ctx.getBean("service"); 
 } 

 @BeforeMethod 
 public void setUp() throws ParseException { 
  // esvaziamento da base 
  clean(); 
  // preenchimento da base 
  fill(); 
 } 

 // logs 
 private void log(String message) { 
  System.out.println("----------- " + message); 
 } 

 // exibição do conteúdo da tabela 
 private void dump() { 
  log("dump"); 
  System.out.formato("[pessoas]%n"); 
  for (P70paramet p : service.getAll()) { 
   System.out.println(p); 
  } 
 } 

 // preenchimento da tabela 
 public void fill() throws ParseException { 
  log("fill"); 
  // criação de pessoas 
  P70paramet p1 = new P70paramet(); 
  P70paramet p2 = new P70paramet(); 
  // que vamos salvar 
  service.saveArray(new P70paramet[] { p1, p2 }); 
 } 
 // remoção dos elementos da tabela 
 public void clean() { 
  log("clean"); 
  for (P70paramet p : service.getAll()) { 
   service.delete(p.getP70idpkpar()); 
  } 
 } 
 @Test() 
 public void test01() { 
  log("test1"); 
  //dump(); 
  // lista das pessoas 
  List<P70paramet> parâmetros = service.getAll(); 
  assert 119 == parâmetros.size(); 
 } 
} 

A anotação @BeforeClass indica o método a ser executado para inicializar a configuração necessárias para os testes. Ela é executada antes do primeiro teste ser executado. A anotação @AfterClass, que não é usado aqui, refere-se ao método a ser executado depois de todos os testes foraterem sido realizados.

O método "init" anotado pelo @BeforeClass explora o arquivo de configuração do "Spring" para instanciar as diferentes camadas da aplicação e ter uma referência na camada [serviço]. Em seguida, todos os testes usam essa referência.
A anotação @BeforeMethod indica o método a ser executado antes de cada teste.
A anotação @AfterMethod, não utilizada aqui, indica o método a ser executado depois de cada teste.

O método setUp anotado pelo @BeforeMethod esvazia o banco de dados.

A anotação @Test indica um método de teste a ser executado.


Tradução feita por Lucia Maurity y Nouira


Veja também :
Este documento, intitulado « FrameWork TestNG : Exemplo de utilização no WSAD »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.