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;
}
}
/**
*
* @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.
- Botón derecho sobre la clase Operaciones.java → Tools → Create Test.
- Nos aparece una ventana para elegir las opciones del test a crear, estas son:
- Class to Test: nombre de la clase a la que se creará el test (no se puede modificar).
- Class Name: nombre de la clase test a crear.
- Location: donde se guardará el test, lo dejamos en la carpeta test.
- Framework: seleccionamos TestNG.
- Code generation: distintas opciones que nos generará automáticamente el IDE.
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);
}
}
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 Window →
Output → Test Results.
Comentarios
Publicar un comentario