2011-06-21 15 views
0

我有這個非常煩人的問題,我想不出。webflow測試,無法找到流量模型

這是我的一個Webflow項目的主要結構:

  • WEB-INF /流/基本/基本-flow.xml
  • WEB-INF /流/故障/錯誤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

爲您error流你或許應該explicitelly傳遞flowId

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

當使用FlowDefinitionResource.createFileResource(..)時,flowIdFlowDefinitionResource.getFlowId(..)的結果,在您的情況下可能不會評估爲error

+0

謝謝!你是絕對正確的,flowId是錯誤的。 –