Como realizar una prueba unitaria y framework de pruebas unitarias de distintos lenguajes
🎙️ Episodio: Cómo hacer una prueba unitaria y frameworks por lenguaje
En este episodio te explico paso a paso cómo realizar una prueba unitaria efectiva y qué frameworks se usan en distintos lenguajes como Java, Python, JavaScript o C#.
Ideal para iniciarte en la automatización desde el código.
Ejemplo de la prueba unitaria
Lo primero que hay que hacer es crear la clase Calculadora Lo segundo que hay que hacer es importar todas las clases que vamos a necesitar, en este caso, la más importante es la de JUnit 5 que seria la que contiene Jupiter y la de Assertions que nos permite utilizar todos los tipos de Assertions que son los mas importantes porque permiten comprobar si el método devuelve lo que se espera. Después tenemos las etiquetas @BeforeEach Y @AfterEach, vienen con @ para indicar que es una palabra clave, la primera es para que el contenido de dentro se ejecute antes de cada prueba unitario y en este caso queremos instanciar la clase Calculadora que es donde esta los métodos que queremos probar y la segunda se ejecuta después de ejecutar la prueba y lo que hace es borrar el objeto instanciado de la memoria.
package junit5;
import org.junit.jupiter.api.*;
mport static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
class CalculadoraTest {
private Calculadora calculator;
@BeforeEach
public void setUp(){
calculator = new Calculadora();
System.out.println("Instanciamos objeto");
}
@AfterEach
public void tearDown(){
calculator = null;
System.out.println("Eliminamos el objeto de memoria");
}
@Test
void sumarTest() {
//1.- Arrangue
int resultadoEsperado = 40;
int resultadoActual;
//2.- Action
resultadoActual = calculator.sumar(15,25);
assertEquals(30, calculator.sumar(10,20));
assertEquals(12, calculator.sumar(9,3));
//3.- Assert
assertEquals(resultadoEsperado, resultadoActual);
System.out.println("@Test -> sumarTest()");
}
@Test
void restarTest() {
//Forma rapida
assertEquals(5, calculator.restar(7,2));
assertEquals(-12, calculator.restar(10,22));
}
@Test
void multiplicarTest() {
//Forma rapida
assertEquals(25, calculator.multiplicar(5,5));
assertEquals(-56, calculator.multiplicar(7,-8));
}
@Test
void dividirTest() {
//Forma rapida
assertEquals(2, calculator.dividir(10,5));
assertEquals(5.0, calculator.dividir(17,3));
}
@Test
void divideByZero() {
//Forma rapida y comprobando una excepcion de tipo aritmetico
assertThrows(ArithmeticException.class, ()->calculator.divideByZero(2,0), "No se puede dividir por cero");
}
}
Respuestas