2

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か?

4

3 に答える 3

1

実際にイベントを通知している場合は、ViewSelectionを取得して、次の方法で名前を確認できます。

assertViewNameEquals("Your View Name", applicationView(viewSelection));
于 2009-09-23T17:30:49.137 に答える
1

これを使用できます:

assertResponseWrittenEquals("barView", context);

contextあなたの はどこですかMockExternalContext

とにかく、これは私がいつもこれをテストする方法です。

于 2009-06-22T20:06:42.527 に答える
-1

残りのテストや Webflow の使用方法について話すことはできませんが、なぜcontains()平等性をテストするために使用しているのですか? 「barViewBlah」のビューをテストに一致させたくないのは確かですよね?

assertEquals("barView", view.toString());
于 2009-04-28T15:10:09.280 に答える