Remember to Specify All Values Required by the Calculations Being Tested

In your tests, you need only specify the values which will be accessed during rules execution.

However, it can be easy to forget to specify a value; if so, when CER attempts a calculation, it may encounter an attribute whose derivation is <specified> but for which no value has been specified in your test code, and CER will report a stack of errors:

public void valueNotSpecified() {

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

    /**
     * Will not work - a value required for calculation was marked
     * as <specified> but no value was specified for it.
     *
     * CER will report a stack of messages:
     * <ul>
     *
     * <li> Error calculating attribute 'ageAtRetirement' on rule
     * class 'FlexibleRetirementYear' (instance id '1', description
     * 'Undescribed instance of rule class
     * 'FlexibleRetirementYear', id '1'). </li>
     *
     * <li>Error calculating attribute 'retirementCause' on rule
     * class 'FlexibleRetirementYear' (instance id '1', description
     * 'Undescribed instance of rule class
     * 'FlexibleRetirementYear', id '1'). </li>
     *
     * <li>Value must be specified before it is used (it cannot be
     * calculated).</li>
     *
     * </ul>
     *
     *
     * Remember to specify all values required by calculations!
     */
    CREOLETestHelper.assertEquals(65, flexibleRetirementYear
        .ageAtRetirement().getValue());

  }