Concordion-first-application
一致-最初のアプリケーション
Concordionでプログラミングを始めましょう。 Concordionを使用して最初の例の記述を開始する前に、リンク:/concordion/concordion_environment [Concordion-Environment Setup]チュートリアルで説明されているように、Concordion環境を適切にセットアップしていることを確認する必要があります。 また、Eclipse IDEの実用的な知識があることも前提としています。
それでは、次の受け入れテストを印刷する簡単なConcordionアプリケーションの作成に進みましょう-
Example
When Robert logs in the system, a greeting "Hello Robert!" is displayed.
ステップ1-Javaプロジェクトの作成
最初のステップは、Eclipse IDEを使用して単純なJavaプロジェクトを作成することです。 ファイル→新規→プロジェクト*オプションに従い、最後にウィザードリストから Javaプロジェクト*ウィザードを選択します。 次のようにウィザードウィンドウを使用して、プロジェクトに Concordion という名前を付けます-
プロジェクトが正常に作成されると、 Project Explorer に次のコンテンツが表示されます-
ステップ2-必要なライブラリを追加する
プロジェクトに一致とその依存関係を追加しましょう。 これを行うには、プロジェクト名 concordion を右クリックし、コンテキストメニューで使用可能なオプションに従います。*ビルドパス→ビルドパスの設定*のように、Javaビルドパスウィンドウを表示します-
[ライブラリ]タブにある[外部JARの追加]ボタンを使用して、Concordionフォルダーから次のコアJARを追加します。
- concordion-1.5.1
- hamcrest-core-1.3
- junit-4.12
- ognl-2.6.9
- xom-1.2.5
手順3-ソースファイルの作成
*concordion* プロジェクトの下に実際のソースファイルを作成しましょう。 まず、 *com.finddevguides* というパッケージを作成する必要があります。 これを行うには、パッケージエクスプローラーセクションで *src* を右クリックし、オプション:*新規→パッケージ*に従います。
次に、com.finddevguidesパッケージの下にSystem .java ファイルを作成します。
*System.java* ファイルの内容は次のとおりです-
package com.finddevguides;
public class System {
public String getGreeting(String userName){
return "Hello " + userName + "!";
}
}
ステップ4-仕様ファイルの作成
*concordion* プロジェクトの下に実際の仕様ファイルを作成しましょう。 まず、 *specs* という名前の新しいソースフォルダーを作成する必要があります。 このフォルダーには、JUnitFixtureやテストランナーなどの仕様ファイルと、仕様であるhtmlファイルが含まれます。 次に、 *specs.finddevguides* というパッケージを作成する必要があります。 これを行うには、パッケージエクスプローラーセクションで *spec* を右クリックし、オプション *New→Package* に従います。
次に、specs.finddevguidesパッケージの下に Systeml および SystemFixture.java ファイルを作成します。 その後、specsソースフォルダに concordion.css を追加します。
これが Systeml ファイルの内容です-
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type="text/css"/>
</head>
<body>
<h1>System Specifications</h1>
<p>We are building specifications for our online order tracking application.</p>
<p>Following is the requirement to show greeting to logged in user:</p>
<div class = "example">
<h3>Example</h3>
<p>When <span concordion:set = "#userName">Robert</span>
logs in the system, a greeting "<span concordion:assertEquals = "getGreeting(#userName)">
Hello Robert!</span>" is displayed.</p>
</div>
</body>
</html>
*SystemFixture.java* ファイルの内容は次のとおりです-
package specs.finddevguides;
import com.finddevguides.System;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public String getGreeting(String userName){
return system.getGreeting(userName);
}
}
ここに concordion.css ファイルの内容があります-
*{
font-family: Arial;
}
body {
padding: 32px;
}
pre {
padding: 6px 28px 6px 28px;
background-color: #E8EEF7;
}
pre, pre* , code, code *, kbd {
font-family: Courier New, Courier;
font-size: 10pt;
}
h1, h1 *{
font-size: 24pt;
}
p, td, th, li, .breadcrumbs {
font-size: 10pt;
}
p, li {
line-height: 140%;
}
table {
border-collapse: collapse;
empty-cells: show;
margin: 8px 0px 8px 0px;
}
th, td {
border: 1px solid black;
padding: 3px;
}
td {
background-color: white;
vertical-align: top;
}
th {
background-color: #C3D9FF;
}
li {
margin-top: 6px;
margin-bottom: 6px;
}
.example {
padding: 6px 16px 6px 16px;
border: 1px solid #D7D7D7;
margin: 6px 0px 28px 0px;
background-color: #F7F7F7;
}
.example h3 {
margin-top: 8px;
margin-bottom: 8px;
font-size: 12pt;
}
.special {
font-style: italic;
}
.idea {
font-size: 9pt;
color: #888;
font-style: italic;
}
.tight li {
margin-top: 1px;
margin-bottom: 1px;
}
.commentary {
float: right;
width: 200px;
background-color: #ffffd0;
padding:8px;
border: 3px solid #eeeeb0;
margin: 10px 0px 10px 10px;
}
.commentary, .commentary* {
font-size: 8pt;
}
仕様のhtmlファイルとテストフィクスチャについて注意すべき2つの重要な点があります-
- Systemlは、コンコーディオン名前空間を使用する仕様htmlファイルです。
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
- Systemlはconcordion:setコマンドを使用して、一時変数userNameの値をRobertに設定します。 ここで、userNameはSystemフィクスチャのgetGreetingメソッドに渡されるパラメーターです。
When <span concordion:set="#userName">Robert</span> logs in the system
- Systemlは、concordion:assertEqualsコマンドを使用して、getGreeting(userName)関数の出力がHello Robert!であることを確認します。
a greeting "<span concordion:assertEquals="getGreeting(#userName)">
Hello Robert!</span>" is displayed.
- SystemFixtureは、ConcordionRunner.classアノテーションが付けられたJUnitテストフィクスチャです。
@RunWith(ConcordionRunner.class)
public class SystemFixture {}
- SystemFixtureには、ユーザーに挨拶を返すgetGreetingメソッドがあります。
public String getGreeting(String userName){
return system.getGreeting(userName);
}
ステップ5-プログラムの実行
SystemFixtureのコンテンツ領域を右クリックして、[として実行]> [* JUnitテストケース*]を選択します。 次の出力が表示され、junitが成功します。
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\finddevguides\Systeml
Successes: 1, Failures: 0
システムは、Concordionテスト実行の出力です。
おめでとうございます。最初のConcordion Acceptanceテストが正常に作成されました。 さらに、次のいくつかの章でもっと面白いことを始めましょう。