春のWebflowユニットテストでは、どのようにビューステートが指定された名前のビューを持っていると主張していますか?
-
18-09-2019 - |
質問
私はAbstractXmlFlowExecutionTestsを拡張しましたように、TDDを使用しようと、春のWebflowを開発しています。ビューステートが指定された名前の関連するビューを持っていること:私は、私は単純なことだろうと思ったのだろうどのような主張する明白な方法を見ることはできません。例えば、このフローを所与の(抜粋):
<?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
です。
これは、私はいつもこのとにかくをテストする方法です。
他のヒント
あなたが実際にイベントをシグナルしている場合は、あなたがViewSelectionを取得し、この方法で名前を確認することができます:
assertViewNameEquals("Your View Name", applicationView(viewSelection));
私はのWebflowを使用するために、あなたのテスト、またはどのようにの残りの部分に話すことはできませんが、なぜあなたは平等のためにテストするためにcontains()
を使用していますか?私は、あなたのテストを一致させるために「barViewBlah」の表示をしたくないと確信しているあなたのですか?
assertEquals("barView", view.toString());
所属していません StackOverflow