Escritura y ejecución de pruebas de unidad

El siguiente paso de las pruebas de un conjunto de reglas consiste en escribir una prueba JUnit para probar la lógica en nuestro conjunto de reglas. A continuación se muestra un ejemplo de una prueba de unidad para la clase Person. Esta prueba calcula el atributo eligible cuando los atributos isStudent y age están especificados.

import curam.creole.calculator.CREOLETestHelper;
import curam.creole.execution.session.RecalculationsProhibited;
import curam.creole.execution.session.Session;
import curam.creole.execution.session.Session_Factory;
import curam.creole.execution.session.StronglyTypedRuleObjectFactory;
import curam.creole.ruleclass.SampleBenefit.impl.Person;
import curam.creole.ruleclass.SampleBenefit.impl.Person_Factory;
import curam.creole.storage.inmemory.InMemoryDataStorage;
import curam.test.framework.CuramServerTest;


/** La clase prueba la clase de regla Person.*/
public class TestPersonEligible extends CuramServerTest {

  private Session session;


  public TestPersonEligible(String arg0) {
    super(arg0);
  }


  /*
   * Todas las pruebas en esta clase utilizará una sesión recién creada
   * que crea objetos de regla de tipo fuerte
   */
  @Override
  protected void setUpCuramServerTest() {
    session = Session_Factory.getFactory().newInstance(
      new RecalculationsProhibited(),
        new InMemoryDataStorage(
          new StronglyTypedRuleObjectFactory()));
  }


  /**
   * Pruebas de que la elegibilidad de una persona se ha calculado correctamente
   * cuando se ha proporcionado el estado de estudiante y la edad de una persona.
   */
  public void testPersonEligiblity() {

    /* Crear un objeto de regla de "programa de arranque" */
    final Person personObj = 
      Person_Factory.getFactory().newInstance(session);

   /**
    * Especificar una persona con una edad de 25 años.
    */
    personObj.age().specifyValue(25);
   
    /**
     * Especificar una persona que sea un estudiante.
     */
    personObj.isStudent().specifyValue(true);
    
    /**
     * Comprobar que la persona es elegible
     */
    CREOLETestHelper.assertEquals(
      true, personObj.eligible().getValue());
  }
}

Esta prueba se puede añadir a la carpeta de pruebas del componente en el que está trabajando. Puede ejecutar la prueba como una prueba JUnit estándar a través del entorno de desarrollo integrado (IDE) que esté utilizando o bien puede crear un destino Apache Ant para que ejecute la prueba por usted.

Para obtener más información sobre cómo probar reglas, consulte la guía Manual de consulta de Cúram Express Rules.