我是发展一个弹簧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"));
}

是有一个简单的方法来主张状态 foobarView?

有帮助吗?

解决方案

你可以用这样的:

assertResponseWrittenEquals("barView", context);

哪里 context 是你的 MockExternalContext.

这是我如何总是试验这个。

其他提示

如果你实际上信号的事件,可以获得的ViewSelection和检查的名称通过这种方法:

assertViewNameEquals("Your View Name", applicationView(viewSelection));

我不能说你的余的试验,或如何使用Webflow,但为什么你使用 contains() 测试的平等?我敢肯定你不想看"barViewBlah",以配合你的测试,不是吗?

assertEquals("barView", view.toString());
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top