Entwickeln und Ausführen von Komponententests

Der nächste Schritt beim Testen eines Regelwerks besteht darin, einen JUnit-Test zu entwickeln, um die Logik in dem Regelwerk zu testen. Es folgt ein Beispiel eines Komponententests für die Klasse Person. In diesem Test wird das Attribut eligible berechnet, wenn die Attribute isStudent und age angegeben sind.

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;


/** Class tests the Person rule class.*/
public class TestPersonEligible extends CuramServerTest {

  private Session session;


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


  /*
   * All tests in this class will use a newly-created session 
   * that creates strongly-typed rule objects
   */
  @Override
  protected void setUpCuramServerTest() {
    session = Session_Factory.getFactory().newInstance(
      new RecalculationsProhibited(),
        new InMemoryDataStorage(
          new StronglyTypedRuleObjectFactory()));
  }


  /**
   * Tests that a person's eligibility is correctly calculated 
   * when supplied a person's student status and age.
   */
  public void testPersonEligiblity() {

    /* Create a "bootstrap" rule object */
    final Person personObj = 
      Person_Factory.getFactory().newInstance(session);

   /**
    * Specify a person with an age of 25.
    */
    personObj.age().specifyValue(25);
   
    /**
     * Specify a person who is a student.
     */
    personObj.isStudent().specifyValue(true);
    
    /**
     * Check that the person is eligible
     */
    CREOLETestHelper.assertEquals(
      true, personObj.eligible().getValue());
  }
}

Dieser Test kann zu dem Testordner der Komponente hinzugefügt werden, mit der Sie arbeiten. Sie können den Test als Standard-JUnit-Test über die integrierte Entwicklungsumgebung ausführen, die Sie verwenden. Sie können auch ein Apache Ant-Ziel erstellen, das den Test für Sie ausführen soll.

Weitere Informationen zum Testen von Regeln finden Sie im Referenzhandbuch zu Cúram Express Rules.