1

これはSpringWebFlowに似ています-conversationScopeにすでにある値でユニットテストを設定するにはどうすればよいですか?

私はその質問にリストされている解決策を使用してconversationScopeの問題を解決しましたが、FlowScopeに対して同じことをしようとして壁にぶつかっています。何らかの理由で、FlowExecutionにはgetFlowScope()メソッドがありません。

どんな助けや正しい方向への一般的な指示も非常に高く評価されます。ありがとう!

アップデート:

より多くのコンテキストを与えるために、これは私がテストしようとしているWebフローの行です。

<evaluate expression="serviceFactory.getInstance(flowScope.config.country).startTransaction(flowScope.SomeList.get(0), 0)" />

そして、関連するテストステートメントは次のとおりです。

EasyMock.expect(serviceObjectMock.startTransaction(someObjectMock, 0)).andReturn(true);

そしてそれは黙って失敗します。デバッガーでコードをウォークスルーすると、この呼び出しでIndexOutOfBoundsExceptionが発生したことがわかります。これにより、flowScopeにリストを含める必要があると思いました。

4

2 に答える 2

0

興味のある方のために説明すると、フロースコープで属性を明示的に設定する必要がないことを学びました。EasyMock は「expect」のリストを通過するときにそれを処理するからです。

私の問題は、「flowScope.SomeList.get(0)」が前の行で設定された属性を参照し、その行の「expect」ステートメントで「new ArrayList()」を戻り値として使用したことです。

また、「サイレントに失敗する」部分は、Spring のテスト プロファイルで DEBUG レベルの情報を有効にしていないことが原因でした。

これにより、テスト log4j.xml ファイルで問題が解決されました。

    <logger name="org.springframework">
    <level value="DEBUG" />
</logger>
于 2012-09-28T23:14:59.093 に答える