【发布时间】:2012-06-29 21:43:46
【问题描述】:
我正在尝试找到在 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
- 在该上下文中设置事件
- resumeFlow(带有给定上下文)
- 验证模拟方法调用并最终验证
- assertCurrentState(someViewState: 在给定的输入影响了流中要分叉到的决策状态之后,您期望处于的位置)
似乎决策状态不作为视图状态运行(很公平:它们不是流程中的给定视图状态)那么我们如何模拟/测试?
感谢您的回复。
【问题讨论】:
标签: unit-testing mockito spring-webflow-2