Тестирование решенийс помощью движка DMN

Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine

Чтобы легко протестировать DMN решения в тестах на JUnit, движок DMN предоставляет JUnit Rule (JUnit-правило). DmnEngineRule создает новвый движок DMN по умолчанию. Движок DMN может использоваться в test cases для парсинга и оценки решений.

public class DecisionTest {

  @Rule
  public DmnEngineRule dmnEngineRule = new DmnEngineRule();

  @Test
  public void test() {
    DmnEngine dmnEngine = dmnEngineRule.getDmnEngine();
    // load DMN file
    InputStream inputStream = ...;
    //create and add variables
    VariableMap variables = Variables.createVariables();

    DmnDecision decision = dmnEngine.parseDecision("decision", inputStream);
    DmnDecisionResult result = dmnEngine.evaluateDecision(decision, variables);

    // assert the result
    // ...
  }

}

Если вы хотите создать двидок DMN с кастомизированной конфигурацией, вы можете передать это в правило движка DMN.

public class DecisionTest {

  @Rule
  public DmnEngineRule dmnEngineRule = new DmnEngineRule(createCustomConfiguration());

  public DmnEngineConfiguration createCustomConfiguration() {
    // create and return custom configuration
    return ...;
  }

  @Test
  public void test() {
    DmnEngine customDmnEngine = dmnEngineRule.getDmnEngine();
    // ...
  }

}

DmnDecisionResult реализует интерфейс List<DmnDecisionResultEntries>, в то время как DmnDecisionResultEntries реализует интерфейс Map<String, Object>. Это позволяет использовать обычные assert-ы List или Map.

Лицензия и атрибуция

Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .

Оригинал документации: https://docs.camunda.org