Package giis.demo.descuento.ut
Class TestDescuentoFunction
java.lang.Object
giis.demo.descuento.ut.TestDescuentoFunction
Pruebas del ejemplo de descuentos de clientes (Problema 3a).
Situaciones a cubrir:
Entradas (Combinación parcial tipo cliente y cupones/fidelizacion)
Nuevo Cliente
Sin cupón descuento ni tarjeta fideliz.
Con cupón descuento
Con tarjeta fidelización (inválida)
Cliente existente
Sin cupón descuento ni tarjeta fideliz.
Con cupón descuento
Con tarjeta de fidelizacion
Salidas
Acumulacion de descuentos
Se acumulan
No se acumulan
Descuento aplicado (%)
15; 10; 20; 0
Los casos de prueba se implementan cada uno en un assert y se organizan en diferentes metodos de prueba
-para clientes nuevos
-para clientes habituales
-para las clases invalidas
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidPrimera version, agrupando en dos metodos de prueba los tests validos para clientes nuevos y habituales.voidEn los anteriores, si falla un assert, no se ejecutan los siguientes.voidEjemplo de uso de Hamcrest matchers (con assertThat).voidPrueba de la clase invalida (causa excepcion)
-
Constructor Details
-
TestDescuentoFunction
public TestDescuentoFunction()
-
-
Method Details
-
testClientesNuevos
@Test public void testClientesNuevos()Primera version, agrupando en dos metodos de prueba los tests validos para clientes nuevos y habituales. En JUnit4 los mensajes opcionales de los assert se indicaban como primer parametro. -
testClientesHabituales
@Test public void testClientesHabituales() -
testClientesNuevosGroupAssertion
@Test public void testClientesNuevosGroupAssertion()En los anteriores, si falla un assert, no se ejecutan los siguientes. Desde JUnit5 existe la posibilidad de ejecutar todos los asserts, evitando este problema. A modo de ejemplo se muestra para los clientes nuevos, aunque en este caso, seria mejor usar pruebas parametrizadas (ejemplo incluido en otra clase) -
testClientesNuevosNoPuedenTenerTarjeta
@Test public void testClientesNuevosNoPuedenTenerTarjeta()Prueba de la clase invalida (causa excepcion) -
testClientesNuevosHamcrest
@Test public void testClientesNuevosHamcrest()Ejemplo de uso de Hamcrest matchers (con assertThat). Para asserts complejos proporcionan mayor flexibilidad que los assert convencionales. Notar que el orden de los parametros no es el mismo que el de los asserts de junit5. En JUnit4 venian incluidos con la dependencia, pero a partir de JUnit5 no, por lo que debe incluirse explicitamente al dependencia org.hamcrest:hamcrest.
-