тестирование веб-потока, невозможно найти модель потока - PullRequest
0 голосов
/ 21 июня 2011

У меня очень неприятная проблема, которую я не могу понять.

Это основная структура моего проекта веб-потока:

  • WEB-INF /flows / basic / basic-flow.xml
  • WEB-INF /flow / error / error-flow.xml

Поток ошибок содержит общую обработку исключений и является абстрактным.Базовый поток имеет поток ошибок как родительский.

Когда я пытаюсь написать тест JUnit, я сталкиваюсь с проблемой, когда он не может загрузить поток ошибок.Я протестировал базовый сам по себе (просто удаляя родительский атрибут), и он работает просто отлично.Любой совет, что я могу делать неправильно?

Вот важные части тестового кода:

@Override
protected FlowDefinitionResource getResource(FlowDefinitionResourceFactory resourceFactory) {
    return resourceFactory.createFileResource("src/main/webapp/WEB-INF/flows/basic/basic-flow.xml");
}

@Override
protected FlowDefinitionResource[] getModelResources(FlowDefinitionResourceFactory resourceFactory) {
    FlowDefinitionResource flowDefinitionResource = resourceFactory
            .createFileResource("src/main/webapp/WEB-INF/flows/error/error-flow.xml");

    return new FlowDefinitionResource[] { flowDefinitionResource };
}

public void testStartBasicFlow() {
    MockExternalContext context = new MockExternalContext();
    startFlow(context);
}

Исключение, которое я получаю, это:

Caused by: org.springframework.webflow.engine.model.registry.NoSuchFlowModelException: No flow model 'error' found

1 Ответ

1 голос
/ 21 июня 2011

Для вашего error потока Вы, вероятно, явно должны передать flowId:

FlowDefinitionResource flowDefinitionResource = resourceFactory.createResource(
    "src/main/webapp/WEB-INF/flows/error/error-flow.xml", null, "error");

При использовании FlowDefinitionResource.createFileResource(..) flowId является результатом FlowDefinitionResource.getFlowId(..), который в вашем случае может не оценить error.

...