Package giis.demo.tkrun.ut
Class TestInscripcion
java.lang.Object
giis.demo.tkrun.ut.TestInscripcion
Pruebas del ejemplo de Inscripciones en carreras populares (primer ejemplo) con JUnit6
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidvoidporcentajeDescuentoRecargoInvalidas(long idCarrera, String message) voidsetUp()voidtearDown()voidOtra version de una variante del metodo getListaCarreras, en este caso el DTO devuele una lista de objetos con tres valores, las comparaciones se realizan para cada uno de ellos.voidOtra alternativa que facilita la comparacion, en vez de comparar con el Json completo se compara con una representacion estilo CSV en el que cada atributo del objeto se representa como un elemento de un arrayvoidIgual que el anterior, pero utiliza otro componente (visual-assert) para comparar y generar un archivo html con las diferencias, que se puede revisar sin depender del entorno Eclipse (util si los strings que se comparan son de gran tamanyo)voidAlternativa para comparacion utilizando una representacion serializada del DTO a Json (utiliza un metodo de utilidad basado en Jackson): Es mas compacto y facilita la comparacion de resultados, permitiendo tambien realizar las comparaciones cuando se prueba un api REST.voidPara probar que un metodo debe causar una excepcion, utiliza una expresion lambda en la que se incluye el codigo a ejecutar en el que se espera la excepcion.voidCuando se precisa comprobar tambien el mensaje de la excepcion se utiliza el objeto excepcion devuelto por assertTrhows para comprobar dicho mensaje.voidComprueba la lista de carreras que ve el usuario en el momento de la inscripcion para diferentes fases de inscripcion: Debe mostrar todas las carreras excluyendo las pasadas, indicando Abierto en las que se puede realizar inscripcion; Con la base de datos del setUp cubre las cinco clases de equivalencia relativas a Fecha de inscrpcion (carreras 100 a 104)voidEn la anterior, si falla un assert, no se ejecutan los siguientes.voidOtra alternativa para comparacion de los valores de una lista, pasando todos sus elementos a un string csv.voidvoidDeterminacion del descuento o recargo porcentual segun la fecha de inscripcion (Cubre las clases invalidas, a las que habria que anyadir la validacion de la fecha) Para evitar duplicacion de codigo se utiliza un metodo generico invocado desde los tres tests.voidvoidDeterminacion del descuento o recargo porcentual segun la fecha de inscripcion (Cubre las clases validas para el Porcentaje de descuento: 3 relativas fecha de inscripcion y 1 relativa al id de carrera valido )
-
Constructor Details
-
TestInscripcion
public TestInscripcion()
-
-
Method Details
-
setUp
@BeforeEach public void setUp() -
tearDown
@AfterEach public void tearDown() -
loadCleanDatabase
-
testCarrerasActivasList
@Test public void testCarrerasActivasList()Comprueba la lista de carreras que ve el usuario en el momento de la inscripcion para diferentes fases de inscripcion: Debe mostrar todas las carreras excluyendo las pasadas, indicando Abierto en las que se puede realizar inscripcion; Con la base de datos del setUp cubre las cinco clases de equivalencia relativas a Fecha de inscrpcion (carreras 100 a 104) -
testCarrerasActivasListAssertAll
@Test public void testCarrerasActivasListAssertAll()En la anterior, si falla un assert, no se ejecutan los siguientes. Desde JUnit5 existe la posibilidad de ejecutar todos los asserts, evitando este problema -
testCarrerasActivasListAssertCsv
@Test public void testCarrerasActivasListAssertCsv()Otra alternativa para comparacion de los valores de una lista, pasando todos sus elementos a un string csv. Es mas compacto y facil la comparacion de resultados, p.e. cuando aparecen o desaparecen filas. -
testCarrerasActivasDto
@Test public void testCarrerasActivasDto()Otra version de una variante del metodo getListaCarreras, en este caso el DTO devuele una lista de objetos con tres valores, las comparaciones se realizan para cada uno de ellos. -
testCarrerasActivasDtoJson
@Test public void testCarrerasActivasDtoJson() throws com.fasterxml.jackson.core.JsonProcessingExceptionAlternativa para comparacion utilizando una representacion serializada del DTO a Json (utiliza un metodo de utilidad basado en Jackson): Es mas compacto y facilita la comparacion de resultados, permitiendo tambien realizar las comparaciones cuando se prueba un api REST. El uso de strings multilinea evita la necesidad de hacer escape de las comillas.- Throws:
com.fasterxml.jackson.core.JsonProcessingException
-
testCarrerasActivasDtoCsv
@Test public void testCarrerasActivasDtoCsv()Otra alternativa que facilita la comparacion, en vez de comparar con el Json completo se compara con una representacion estilo CSV en el que cada atributo del objeto se representa como un elemento de un array -
testCarrerasActivasDtoCsvHtmlDiffs
@Test public void testCarrerasActivasDtoCsvHtmlDiffs()Igual que el anterior, pero utiliza otro componente (visual-assert) para comparar y generar un archivo html con las diferencias, que se puede revisar sin depender del entorno Eclipse (util si los strings que se comparan son de gran tamanyo) -
testCarrerasActivasException
@Test public void testCarrerasActivasException()Para probar que un metodo debe causar una excepcion, utiliza una expresion lambda en la que se incluye el codigo a ejecutar en el que se espera la excepcion. -
testCarrerasActivasExceptionMessageCheck
@Test public void testCarrerasActivasExceptionMessageCheck()Cuando se precisa comprobar tambien el mensaje de la excepcion se utiliza el objeto excepcion devuelto por assertTrhows para comprobar dicho mensaje. -
testPorcentajeDescuentoRecargoValidas
@Test public void testPorcentajeDescuentoRecargoValidas()Determinacion del descuento o recargo porcentual segun la fecha de inscripcion (Cubre las clases validas para el Porcentaje de descuento: 3 relativas fecha de inscripcion y 1 relativa al id de carrera valido ) -
testPorcentajeDescuentoRecargoInvalidaCarreraFinalizada
@Test public void testPorcentajeDescuentoRecargoInvalidaCarreraFinalizada()Determinacion del descuento o recargo porcentual segun la fecha de inscripcion (Cubre las clases invalidas, a las que habria que anyadir la validacion de la fecha) Para evitar duplicacion de codigo se utiliza un metodo generico invocado desde los tres tests. En este caso seria preferible utilizar pruebas parametrizadas (ver ejemplo en otra clase) -
testPorcentajeDescuentoRecargoInvalidaCarreraAntesInscripcion
@Test public void testPorcentajeDescuentoRecargoInvalidaCarreraAntesInscripcion() -
testPorcentajeDescuentoRecargoInvalidaCarreraNoExiste
@Test public void testPorcentajeDescuentoRecargoInvalidaCarreraNoExiste() -
porcentajeDescuentoRecargoInvalidas
-