`
zhangym195
  • 浏览: 123717 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类
最新评论

jBPM jPDL 用户开发手册 3.2.3 - 第23章

阅读更多

23章 工作流的TDD文件

23.1.工作流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());

  }
}

23.2. XML

在你开始写执行案例前,你需要一个ProcessDefinition。最简单获得ProcessDefinition对象的方式是通过解析xml。如果你有代码生成,键入ProcessDefinition。解析并激活代码生成。然后你会获得各种解析方法。有三种基本的去写能够解析成ProcessDefinition对象的xml的方法:
 

23.2.1. 解析流程包

流程包是一个在文件中包含流程xml的叫processdefinition.xml的zip文件。jBPM 流程设计器读写流程包。例如:
...

static ProcessDefinition auctionProcess =

    ProcessDefinition.parseParResource("org/jbpm/tdd/auction.par");

...

23.2.2.解析xml文件

在其他的情况下,你可能想手写processdefinition.xml文件然后使用如一个ant脚本打包zip文件。那样的话,你可能使用JpdlXmlReader
...

static ProcessDefinition auctionProcess =

    ProcessDefinition.parseXmlResource("org/jbpm/tdd/auction.xml");

...

23.2.3. 解析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.zip

    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-3.2.3\db目录下的jbpm.jpdl.mysql.sql文件,为每个SQL语句末尾添加分号,以便正确执行脚本。 4. **jbpm-jpdl-suite-3.2.3部署**: - 在MySQL中执行修改后的jbpm.jpdl.mysql.sql脚本,初始化jbpm...

    jbpm-jpdl-suite-3.2.3的安装配置

    - **docs**目录:包含文档和手册,用于指导用户安装、配置和使用jBPM-jPDL。 - **samples**目录:提供了一些示例项目,帮助用户了解如何使用jBPM-jPDL实现具体业务流程。 安装配置jBPM-jPDL-suite-3.2.3通常涉及...

    jbpm-jpdl-3.2.3.zip

    jbpm-jpdl-3.2.3.zip 是一个包含开源工作流引擎jbpm的版本3.2.3的压缩包。jbpm(Java Business Process Management)是一个强大的业务流程管理系统,它提供了完整的业务流程建模、执行和管理能力,特别适合于需要...

    JBoss_jBPM_jPDL用户开发手册_3.2.3.pdf 中文-(转)zhangym

    《JBoss_jBPM_jPDL用户开发手册_3.2.3.pdf》作为开发者的重要参考资料,详细介绍了如何使用jBPM和jPDL进行流程开发。手册内容可能涵盖: - **安装与配置**:指导读者设置开发环境,包括JBoss服务器的部署和jBPM的...

    jbpm-jpdl-3.2.3(server部分).rar

    这个是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-6

    jbpm-jpdl-suite-3.2.GA.zip

    JBoss+jBPM+jPDL用户开发手册_3.2.3

    《JBoss+jBPM+jPDL用户开发手册_3.2.3》是针对企业级应用开发的一个详尽指南,特别关注于工作流管理和流程自动化。这个手册详细介绍了如何使用JBoss中间件平台,结合jBPM(Java Business Process Management)和jPDL...

    jBPM jPDL 用户指南 (Version 3.2.3) - 第2章

    **jbPM jPDL 用户指南 (Version 3.2.3) - 第2章** jbPM(Java Business Process Management)是一种开源的工作流管理系统,专为Java开发者设计,它提供了业务流程建模、执行和监控的功能。jPDL(jBPM Process ...

    jbpm用户开发手册v3.2.3中文版.pdf

    **JBoss jBPM 用户开发手册v3.2.3中文版** jBPM(Java Business Process Management)是一个开源的工作流引擎,专为Java开发者设计,它提供了强大的业务流程管理和执行能力,使得开发者能够轻松地集成业务逻辑和...

    工作流框架JBoss+jBPM+jPDL用户开发手册

    6. JBoss+jBPM+jPDL用户开发手册_3.2.3.pdf:这可能是jBPM 3.2.3版本的官方用户手册,提供了该版本的详细技术指南和最佳实践。内容可能包括API使用、工作流生命周期管理、持久化机制、错误处理、自定义扩展等关键...

    JBPM-3.2.2

    5. **文档和示例**:为了帮助开发者更好地理解和使用JBPM,通常会提供详细的用户手册和示例代码,指导如何配置、部署以及编程接口的使用。 6. **测试和调试工具**:可能包含了一些辅助工具,如命令行工具或调试器,...

    jbpm-jpdl  

    jbpm-jpdl-3.2.3

    jbpm-jpdl-3.2.3(没有server部分)

    这个是jbpm-jpdl-3.2.3的zip,本来这个是85M的zip, 我删除了server 文件夹(这个文件夹有60多M) 这个server部分在我的另外一个资源里面,一般开发用不到这个server文件夹 如果需要的话,就下载不需要积分, 这个没有...

    工作流插件 jbpm activiti

    工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3

    jBPM开发:配置EclipseIDE开发环境参考.pdf

    ### jBPM开发:配置EclipseIDE开发环境详解 #### 一、配置开发工具 **1. 安装 Eclipse Designer到 Myeclipse6** - **步骤**: - 将`jbpm-jpdl-suite-3.2.3/designer/eclipse/plugins`目录下的所有文件及文件夹...

    jbpm3.2.3 要用jar包

    10. **依赖的第三方库**:jbpm3.2.3还依赖于一些其他的库,如Spring、JTA(Java Transaction API)、JDBC驱动等,这些库也需要一并导入,以确保完整性和兼容性。 导入这些jar包后,开发者可以使用jbpm提供的API来...

    jBPM工作流应用

    首先从网站上下载jBPM开发包(jbpm-jpdl-suite-3.2.3.zip),据说现在jBPM3已经升到3.2.6了,而且据说已经推出了jBPM4了。将jbpm-jpdl-suite-3.2.3.zip解压缩后,里面有个\designer文件夹,这个是eclipseIDE的jBPM...

Global site tag (gtag.js) - Google Analytics