Evitar assertEquals de JUnit

Las pruebas de JUnit heredan métodos de aserción para pruebas. Normalmente se puede afirmar que un resultado esperado se compara con un resultado real.

Un inconveniente común es utilizar assertEquals de JUnit para encontrar que no funciona correctamente para las comparaciones numéricas (y con un mensaje de error ligeramente confuso para arrancar).

CER convierte todas las instancias de Number a su propio formato numérico (respaldado por java.math.BigDecimal) antes de procesarse, para asegurar que no se pierde precisión. Esta conversión puede ser problemática y no intuitiva si utiliza el método assertEquals de JUnit.

CER incluye una sustitución en una clase auxiliar. Utilice CREOLETestHelper.assertEquals, que comparará correctamente los números de cualquier tipo.

Para otros tipos de datos, CREOLETestHelper.assertEquals se comporta de forma idéntica a assertEquals de JUnit, por lo que, en general, es recomendable utilizar CREOLETestHelper.assertEquals a lo largo de las pruebas, para evitar posibles confusiones (incluso en los lugares donde técnicamente es innecesario).

public void creoleTestHelperNotUsed() {

    final FlexibleRetirementYear flexibleRetirementYear =
        FlexibleRetirementYear_Factory.getFactory().newInstance(
            session);

    flexibleRetirementYear.retirementCause().specifyValue(
        "Se ha alcanzado la edad de jubilación legal.") ;

    /**
     * No funcionará -  getValue devuelve el propio manejador numérico de CER,
     * pero 65 es un entero.
     *
     * JUnit proporcionará el mensaje algo confuso:
     * junit.framework.AssertionFailedError: se esperaba:<65> pero
     * ha sido:<65>
     *
     * Utilice CREOLETestHelper.assertEquals en su lugar.
     */
    assertEquals(65, flexibleRetirementYear.ageAtRetirement()
        .getValue());

  }