Foro de elhacker.net

Programación => Java => Mensaje iniciado por: doSomething() en 17 Enero 2020, 19:36 pm



Título: Dudas con JUnit en Java
Publicado por: doSomething() en 17 Enero 2020, 19:36 pm
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.
Código:
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.


Título: Re: Dudas con JUnit en Java
Publicado por: Beginner Web en 22 Enero 2020, 12:27 pm
faltaría el try catch y ya


Título: Re: Dudas con JUnit en Java
Publicado por: CalgaryCorpus en 25 Enero 2020, 15:31 pm
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.