FrameWork TestNG : Exemple d’utilisation sur WSAD

Décembre 2016

Nous allons utiliser TestNG pour vérifier le fonctionnement de la couche Service, DAO, JPA et Hibernate, pour faire ça nous avons écris cette classe de test :
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 {
//	 couche service
	private IService service;

	@BeforeClass
	public void init() {
		// log
		log("init");
		// configuration de l'application
		ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");
		// couche service
		service = (IService) ctx.getBean("service");
	}

	@BeforeMethod
	public void setUp() throws ParseException {
		// on vide la base
		clean();
		// on la remplit
		fill();
	}

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

	// affichage contenu table
	private void dump() {
		log("dump");
		System.out.format("[personnes]%n");
		for (P70paramet p : service.getAll()) {
			System.out.println(p);
		}
	}

	// remplissage table
	public void fill() throws ParseException {
		log("fill");
		// création personnes
		P70paramet p1 = new P70paramet();
		P70paramet p2 = new P70paramet();
		// qu'on sauvegarde
		service.saveArray(new P70paramet[] { p1, p2 });
	}
	// supression éléments de la table
	public void clean() {
		log("clean");
		for (P70paramet p : service.getAll()) {
			service.delete(p.getP70idpkpar());
		}
	}
	@Test()
	public void test01() {
		log("test1");
		//dump();
		// liste des personnes
		List<P70paramet> parametres = service.getAll();
		assert 119 == parametres.size();
	}
}

L’annotation @BeforeClass désigne la méthode à exécuter pour initialiser la configuration nécessaire aux tests. Elle est exécutée avant que le premier test ne soit exécuté. L'annotation @AfterClass non utilisée ici, désigne la méthode à exécuter une fois que tous les tests ont été exécutés.

La méthode init annotée par @BeforeClass exploite le fichier de configuration de Spring pour instancier les différentes couches de l'application et avoir une référence sur la couche [service]. Tous les tests utilisent ensuite cette référence.

L'annotation @BeforeMethod désigne la méthode à exécuter avant chaque test. L'annotation @AfterMethod, non utilisée ici, désigne la méthode à exécuter après chaque test.

La méthode setUp annotée par @BeforeMethod vide la base de données

L'annotation @Test désigne une méthode de test à exécuter.

A voir également :

Ce document intitulé «  FrameWork TestNG : Exemple d’utilisation sur WSAD  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.