тестирование веб-потока, не удалось найти модель потока

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

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

  • WEB-INF/потоки/базовый/базовый-поток.xml
  • WEB-INF/потоки/ошибка/ошибка-потока.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

person Jarle Hansen    schedule 21.06.2011    source источник


Ответы (1)


Для вашего потока error вам, вероятно, следует явно передать flowId:

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

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

person Roadrunner    schedule 21.06.2011