java – Spring Web Flow – 如何使用conversationScope中已有的值设置单元测试?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring Web Flow – 如何使用conversationScope中已有的值设置单元测试?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1643字,纯文字阅读大概需要3分钟。
内容图文
![java – Spring Web Flow – 如何使用conversationScope中已有的值设置单元测试?](/upload/InfoBanner/zyjiaocheng/797/8bfc65fe8b1a42329eb6c9450113dae2.jpg)
我正在使用Spring Web Flow 2.0开发一个项目.
我试图对以决策状态开始的流进行单元测试.决策状态检查conversationScope上的对象的值.我无法弄清楚如何将值插入conversationScope进行单元测试.
我试过了:
getConversationScope().put("someName", value);
MockExternalContext context = new MockExternalContext();
startFlow(context);
但是,当我调用startFlow(context)时,似乎清除了该值.
我也尝试过:
MockExternalContext context = new MockExternalContext();
setCurrentState("someDecisionState");
resumeFlow(context)
但是测试失败并且错误地告诉我,我无法从决策状态恢复,只能从视图状态恢复.
有谁知道如何在conversationScope上插入模拟值,以便我可以测试这些情况?
解决方法:
这不是很明显,但我想出了这个:
public void testFoo() {
FlowExecution flowExecution = getFlowExecutionFactory().createFlowExecution(getFlowDefinition());
updateFlowExecution(flowExecution);
flowExecution.getConversationScope().put("fooBar", "goo");
flowExecution.start(null, new MockExternalContext());
assertCurrentStateEquals("fooView");
}
我不得不深入研究底层的AbstractXmlFlowExecutionTests.startFlow(),看看它是如何实例化FlowExecution,并将其中的一部分复制并粘贴到单元测试中.
这是测试网络流程.
<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/webflow
http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
<action-state id="decideFoo">
<evaluate expression="conversationScope.fooBar" />
<transition on="goo" to="fooView" />
<transition on="gar" to="barView" />
</action-state>
<view-state id="fooView" />
<view-state id="barView" />
</flow>
内容总结
以上是互联网集市为您收集整理的java – Spring Web Flow – 如何使用conversationScope中已有的值设置单元测试?全部内容,希望文章能够帮你解决java – Spring Web Flow – 如何使用conversationScope中已有的值设置单元测试?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。