我正在开发一个Spring Webflow,尝试使用TDD,所以我扩展了AbstractXmlFlowExecutionTests。我看不出一种明显的方法来断言我原以为会很简单的事情:视图状态具有给定名称的关联视图。例如,鉴于以下流程(节选):

<?xml version="1.0" encoding="UTF-8"?>
<flow ...>
    ...
    <view-state id="foo" view="barView">
    </view-state>
</flow>


和单元测试

public void testAssertFooStateHasBarView() {
    ...
    assertCurrentStateEquals("foo");
    assertTrue( getFlowDefinition().getState("confirmation").isViewState());
    // Surely there's an easier way...?
    ViewState viewState = (ViewState)getFlowDefinition().getState("foo");
    View view = viewState.getViewFactory().getView(new MockRequestContext());
    // yuck!
    assertTrue(view.toString().contains("barView"));
}


有没有更简单的方法来断言状态foo具有视图barView

最佳答案

您可以使用此:

assertResponseWrittenEquals("barView", context);


其中context是您的MockExternalContext

无论如何,这就是我始终要进行测试的方式。

10-05 18:27