Spring WebFlow コンテキスト内で意思決定状態を単体テストするための最良の方法を見つけようとしています。
<var name="registration" class="*some class path*.Registration"/>
<decision-state id="checkSignedIn">
<if test="*someClass*.isSignedOn(registration)"
then="checkHas*Said*Service"
else="registrationChoice"/>
</decision-state>
<decision-state id="checkHasTCloudService">
<if test="*someClass*Dao.isUserRegisteredFor*saidSvc*(registration)"
then="*svc*Activated"
else="registrationChoice"/>
</decision-state>
<view-state id="registrationChoice" model="registration" view="view.xhtml" >
<on-entry>...
注意someClassとsomeClassDaoは FlowScope または ConversationScope 内にありません。
Mockito を使用して、決定状態の式が呼び出されていることをテストし、状態の結果が正しいことを確認したいと考えています。
通常、簡単に
- setCurrentState(someViewState: 移行フロー内でスロット テストを実行する場所)
- 入力を定義する
- ExternalContext をモックする
- そのコンテキスト内の setEvent
- resumeFlow (与えられたコンテキストで)
- モックされたメソッド呼び出しを検証 & 最後に
- assertCurrentState(someViewState: フロー内で、指定された入力が fork する決定状態に影響を与えた後、どこにいると予想されるか)
デシジョン ステートはビュー ステートとして動作しないようです (公平に言えば、フロー内の特定のビュー ステートではありません)。
返信をお待ちしております。