Verwendung von .getValue() bedenken

Der CER-Testcodegenerator erstellt für jede Regelklasse eine Java-Schnittstelle sowie eine Zugriffsmethode für die Schnittstelle jedes Regelattributs.

Diese generierte Zugriffsmethode gibt ein CER-Element AttributeValue und nicht den Wert des Attributs direkt zurück. Um den eigentlichen Wert abzurufen, müssen Sie die Methode .getValue() für das Element AttributeValue aufrufen.

Falls Sie die Verwendung von .getValue() in einem Test vergessen, wird der Test zwar möglicherweise fehlerfrei kompiliert, zeigt jedoch bei der Ausführung nicht das ordnungsgemäße Verhalten.

public void getValueNotUsed() {

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

    flexibleRetirementYear.retirementCause().specifyValue(
        "Reached statutory retirement age.");

    /**
     * Will not work - ageAtRetirement() is a calculator, not a
     * value.
     *
     * JUnit will report the message:
     * junit.framework.AssertionFailedError: expected:<65> but
     * was: <Value: 65>
     *
     * Remember to use .getValue() on each attribute calculator!
     */
    assertEquals(65, flexibleRetirementYear.ageAtRetirement());

  }

Bitte beachten Sie, dass in diesem Beispiel der Wert von AttributeValue als Zeichenfolge "Value: 65" und nicht mit der Zahl 65 (dies wäre die Rückgabe von .getValue()) angezeigt wird.