第15章 ワークフローのテスト駆動開発
15.1. ワークフローのテスト駆動開発の概要 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この章では、拡張機能なしで JUnit を使用してカスタムプロセス定義のユニットテストを実行する方法を説明します。
開発サイクルはできるだけ短期間にします。ソフトウェアソースコードへの変更は (可能であれば、中間のビルド手順なしで) すべて即座に検証します。 次の例は、このような方法で jBPM プロセスを開発およびテストする方法を示しています。
ほとんどのプロセス定義ユニットテストは実行ベースです。各シナリオは 1 つの JUnit テストメソッドで実行します。テストメソッドは、外部トリガー (シグナル) をプロセス実行に送信します。続いて各シグナルの後に検証を行い、プロセスが期待される状態にあることを確認します。
以下は、このようなテストのグラフィカルな表現の例です。ここでは、シンプルなオークションプロセスを使用します。
図15.1 オークションのテストプロセス
次に、メインシナリオを実行するテストを記述します。
15.2. XML ソース リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
実行シナリオを記述する前に、
ProcessDefinition
を構成する必要があります。ProcessDefinition
オブジェクトを取得する最も簡単な方法は、XML を解析することです。コード補完をオンにして、ProcessDefinition.parse
を入力します。さまざまな解析方法が表示されます。ProcessDefinition
オブジェクトに解析できる XML を記述するには、次の 3 つの方法があります。
15.2.1. プロセスアーカイブの解析 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プロセスアーカイブ は、プロセスの XML ファイル、つまり
processdefinition.xml
を含む ZIP ファイルです。jBPM Process Designer プラグインは、プロセスアーカイブの読み取りと書き込みを行います。
static ProcessDefinition auctionProcess = ProcessDefinition.parseParResource("org/jbpm/tdd/auction.par");
static ProcessDefinition auctionProcess =
ProcessDefinition.parseParResource("org/jbpm/tdd/auction.par");
15.2.2. XML ファイルの解析 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
processdefinition.xml
ファイルを手動で記述するには、JpdlXmlReader
を使用します。ant スクリプトを使用して、結果の ZIP ファイルをパッケージ化します。
static ProcessDefinition auctionProcess = ProcessDefinition.parseXmlResource("org/jbpm/tdd/auction.xml");
static ProcessDefinition auctionProcess =
ProcessDefinition.parseXmlResource("org/jbpm/tdd/auction.xml");
15.2.3. XML 文字列の解析 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プレーン文字列からインラインでユニットテストの XML を解析します。