Class TestDescuentoFunction

java.lang.Object
giis.demo.descuento.ut.TestDescuentoFunction

public class TestDescuentoFunction extends Object
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 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.