第23章 工作流的TDD文件
既然开发面向流程的软件和开发其他的软件没有什么区别,我们相信流程定义应该是容易测试的。本章显示如何使用纯jUnit而没有任何扩展来单元测试你创作的流程定义。
开发周期应该尽可能的短。变化应使软件源代码立即可校验。更好的,不用任何中间的构建步骤。下面所给的例子将显示如何开发并测试jBPM流程而不需要中间的步骤。
大多数流程定义的单元测试是执行环境。每个环境在jUnit测试方法中被执行的并且将输入外部触发器(读:信号)进入流程执行然后在每个信号后检验是否流程是期待的状态。
让我们看一个这样的测试的例子。我们处理一个简化的使用下面的图形表示的拍卖流程的版本。
图 23-1 拍卖测试流程
现在,让我们写一个执行主环境的测试:
public class AuctionTest extends TestCase {
// 解析流程定义
static ProcessDefinition auctionProcess =
ProcessDefinition.parseParResource("org/jbpm/tdd/auction.par");
// 获得容易断言的节点
static StartState start = auctionProcess.getStartState();
static State auction = (State) auctionProcess.getNode("auction");
static EndState end = (EndState) auctionProcess.getNode("end");
// 流程实例
ProcessInstance processInstance;
// 执行主路径
Token token;
public void setUp() {
// 为给定的流程定义创建一个新的流程实例
processInstance = new ProcessInstance(auctionProcess);
// 执行的主路径是根令牌
token = processInstance.getRootToken();
}
public void testMainScenario() {
// 在流程实例创建后,执行主路径位于start状态
assertSame(start, token.getNode());
token.signal();
// 在信号后,执行的主路径已经移动支auction状态
assertSame(auction, token.getNode());
token.signal();
// 在信号后,执行的主路径已经移动支end状态然后流程结束
assertSame(end, token.getNode());
assertTrue(processInstance.hasEnded());
}
}
|
在你开始写执行案例前,你需要一个ProcessDefinition。最简单获得ProcessDefinition对象的方式是通过解析xml。如果你有代码生成,键入ProcessDefinition。解析并激活代码生成。然后你会获得各种解析方法。有三种基本的去写能够解析成ProcessDefinition对象的xml的方法:
流程包是一个在文件中包含流程xml的叫processdefinition.xml的zip文件。jBPM 流程设计器读写流程包。例如:
...
static ProcessDefinition auctionProcess =
ProcessDefinition.parseParResource("org/jbpm/tdd/auction.par");
...
|
在其他的情况下,你可能想手写processdefinition.xml文件然后使用如一个ant脚本打包zip文件。那样的话,你可能使用JpdlXmlReader
...
static ProcessDefinition auctionProcess =
ProcessDefinition.parseXmlResource("org/jbpm/tdd/auction.xml");
...
|
最简单的的选项是在单元测试行内从纯字符串解析xml 。
...
static ProcessDefinition auctionProcess =
ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state name='start'>" +
" <transition to='auction'/>" +
" </start-state>" +
" <state name='auction'>" +
" <transition to='end'/>" +
" </state>" +
" <end-state name='end'/>" +
"</process-definition>");
...
|
23.3. 测试子流程
将要做的(查看test/java/org/jbpm/graph/exe/ProcessStateTest.java文件)。
...absolutely awsome... to be success! :-))))
- 大小: 1.1 KB
分享到:
相关推荐
jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....
jbpm-jpdl-suite-3.2.3安装配置.doc
jbpm-jpdl-suite-3.2.3的安装配置jbpm-jpdl-suite-3.2.3的安装配置
转发zhangym翻译的JBoss_jBPM_jPDL用户开发手册_3.2.3.pdf 共199页 24章。
JBoss+jBPM+jPDL用户开发手册_3.2.3
这个是jbpm-jpdl-3.2.3.zip的server部分,有60多兆, 只要将"jbpm-jpdl-3.2.3(没有server部分).rar"和这个合在一起就是整个的jbpm-jpdl-3.2.3.zip "jbpm-jpdl-3.2.3(没有server部分).rar"在我的另外一个上传资源里面
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-3.2.3.zip 开源工作流引擎
翻译的英文pdf原版,如果大家觉得翻译的有出入,可以参照英文原版提出意见,我再修改! 博文链接:https://zhangym.iteye.com/blog/226583
jbpm-jpdl-suite-3.2.2.zip 3.2版本画流程图包 jbpm-jpdl-suite-3.2.2.zip 3.2版本画流程图包
jbpm-jpdl-3.2.3
这个是jbpm-jpdl-3.2.3的zip,本来这个是85M的zip, 我删除了server 文件夹(这个文件夹有60多M) 这个server部分在我的另外一个资源里面,一般开发用不到这个server文件夹 如果需要的话,就下载不需要积分, 这个没有...
JBoss+jBPM+jPDL用户开发手册_3.2.3 JPBM 开发指南
工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3
首先从网站上下载jBPM开发包(jbpm-jpdl-suite-3.2.3.zip),据说现在jBPM3已经升到3.2.6了,而且据说已经推出了jBPM4了。将jbpm-jpdl-suite-3.2.3.zip解压缩后,里面有个\designer文件夹,这个是eclipseIDE的jBPM...
jbpm-jpdl-3.2.3下各文件夹|---db这里都是些sql定义和数据文件,如果改用其它数据库,可以使用这些资源来创建。jBPM默认使用的是内存数据库hsqldb|---deploy用来部署你的应用的包和资源|---designer这里是Eclipse...