Buenas, necesito ayuda con un ejercicio práctico sobre pruebas unitarias con JUnit en Java.
Me piden que resuelva el siguiente fragmento de código con los métodos assertEquals y fail, además de tratar la excepción con try-catch. La clase Ejercicio devuelve el precio en función del tipo de servicio y del tiempo.
public class Ejercicio {
...
public double getPrecio(int tipo, int tiempo) throws ExceptionTipo {
double importe = 0;
switch(tipo) {
case 1:
importe += 2;
if(tiempo >= 2) {
importe += (tiempo - 2) * 1.5;
}
break;
case 2:
importe += tiempo * 3;
break;
default:
throw new ExceptionTipo("Tipo erróneo.");
}
}
...
}
// Suponga creada la clase ExceptionTipo
Gracias y un salu2.
faltaría el try catch y ya
JUnit se da cuenta de las excepciones que uno no captura y hace fallar los tests unitarios.
De modo que si el test espera que no hayan excepciones, sino que se devuelva un valor, es eso lo que deberia ponerse en el test unitario.
Y si por alguna razon el test falla, (porque se arrojo una excepcion para ese caso), hay que corregir el codigo, no el test.
Agregarle un fail() en el caso de excepcion no agrega nada, pues JUnit ya te hubiera avisado de la falla si hubieses usado el assert que en teoria tienes que usar.