TestNG. Ejemplo básico en Netbeans


Introducción

TestNG es un framework para realizar test inspirado en JUnit y NUnit, pero introduciendo nuevas funcionalidades que lo hacen mejor y más fácil de usar.
TestNG está diseñado para abarcar todas las categorías de test unidad, funcional, integración, etc.

Anotaciones Básicas

Existen una serie de anotaciones para manejar TestNG, las más básicas son:
  • @BeforeClass
  • @AfterClass
  • @BeforeMethod
  • @AfterMethod
  • @Test
Para ver el significado de estas anotaciones lo mejor es realizar un ejemplo.
Creamos un proyecto maven en Netbeans y creamos una clase llamada Operaciones que contendrá dos métodos simples.
Clase Operaciones.java:
package com.me.mytestng.clases; 
/**
 *
 * @author juan
 */
public class Operaciones {

 
/**
   * Sumar dos números.
   * @param a

   * @param b
   * @return
   */
  
public static int sumar(int a, int b){
    
return a+b;
   }

 
/**
   * Restar dos números.

   * @param a

   * @param b

   * @return
   */
  
public static int restar(int a, int b){
    
return a-b;
   }

}

Una vez terminada la clase, vamos a crearnos un test para ella.
  1. Botón derecho sobre la clase Operaciones.java → Tools → Create Test.
  2. Nos aparece una ventana para elegir las opciones del test a crear, estas son:
    1. Class to Test: nombre de la clase a la que se creará el test (no se puede modificar).
    2. Class Name: nombre de la clase test a crear.
    3. Location: donde se guardará el test, lo dejamos en la carpeta test.
    4. Framework: seleccionamos TestNG.
    5. Code generation: distintas opciones que nos generará automáticamente el IDE.

Clase generada para el test OperacionesNGTest.java:
package com.me.mytestng.clases;
import static org.testng.Assert.*;
import org.testng.annotations.AfterClass; 
import org.testng.annotations.AfterMethod; 
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod; 
import org.testng.annotations.Test; 
/**
 *
 * @author juan
 */
public class OperacionesNGTest {

  
public OperacionesNGTest() {
      System.
out.println("Instancia de la clase.");
   }

 
/**
   * Se invoca después de instanciar la clase. Se utiliza para realizar
   * inicializaciones a nivel de clase.
   * @throws Exception
   */
   @BeforeClass
  
public static void setUpClass() throws Exception {
      System.
out.println("@BeforeClass - setUpClass()");
   }

 
/**
   * Se invoca al acabar la clase. Se utiliza para realizar operaciones
   * de cierre a nivel de clase.
   * @throws Exception
   */
   @AfterClass
  
public static void tearDownClass() throws Exception {
     System.
out.println("@AfterClass - tearDownClass()");
   }

 
/**
   * Se ejecuta antes de realizar una llamada a los métodos con

   * la anotación @Test.
   * @throws Exception
   */
   @BeforeMethod
  
public void setUpMethod() throws Exception {
     System.
out.println("@BeforeMethod - setUpMethod()");
   }

 
/**
   * Se ejecuta después de realizar una llamada a los métodos con

   * la anotación @Test.
   * @throws Exception
   */
   @AfterMethod
  
public void tearDownMethod() throws Exception {
     System.
out.println("@AfterMethod - tearDownMethod()");
   }

 
/**
   * Test del método sumar de la clase Operaciones.
   */
   @Test
  
public void testSumar() {
      System.
out.println("sumar");
     
int a = 2;
     
int b = 3;
     
int expResult = 5;

    
int result = Operaciones.sumar(a, b);
    
assertEquals(result, expResult);
   }

 
/**
   * Test del método restar de la clase Operaciones.
   */
   @Test
  
public void testRestar() {
      System.
out.println("restar");
     
int a = 9;
     
int b = 2;
     
int expResult = 7;

    
int result = Operaciones.restar(a, b);
    
assertEquals(result, expResult);
   }
}

assertEquals es un método del framework TestNG que comprueba que dos valores sean iguales.
Para ejecutar el test hacemos click botón derecho sobre la clase test a ejecutar → Test File. Netbeans ejecuta el test y su resultado es:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.me.mytestng.clases.OperacionesNGTest
Instancia de la clase.
@BeforeClass - setUpClass()
@BeforeMethod - setUpMethod()
restar
@AfterMethod - tearDownMethod()
@BeforeMethod - setUpMethod()
sumar
@AfterMethod - tearDownMethod()
@AfterClass - tearDownClass()
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.603 sec


Results :


Tests run: 2, Failures: 0, Errors: 0, Skipped: 0


Además podemos ver el resultado en la ventana Test, al terminar la ejecución nos mostrará un mensaje por si queremos abrirla. Para abrirla cuando queramos WindowOutputTest Results.

Comentarios

Entradas populares de este blog

Java. Texto de colores en la consola

javax.swing.JPasswordField

javax.swing.JList