协和 – 第一个应用程序
协和 – 第一个应用程序
让我们开始使用 Concordion 进行编程。在开始使用 Concordion 编写第一个示例之前,您必须确保已按照Concordion – 环境设置教程中的说明正确设置了 Concordion 环境。我们还假设您对 Eclipse IDE 有一定的了解。
因此,让我们继续编写一个简单的 Concordion 应用程序,它将打印以下验收测试 –
Example When Robert logs in the system, a greeting "Hello Robert!" is displayed.
步骤 1 – 创建 Java 项目
第一步是使用 Eclipse IDE 创建一个简单的 Java 项目。按照选项文件 → 新建 → 项目,最后从向导列表中选择Java 项目向导。现在使用向导窗口将您的项目命名为Concordion,如下所示 –
成功创建项目后,您的项目资源管理器中将包含以下内容–
第 2 步 – 添加所需的库
让我们在我们的项目中添加 concordion 及其依赖项。为此,右键单击您的项目名称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.tutorialspoint的包。为此,请右键单击包浏览器部分中的src并遵循选项:新建 → 包。
接下来,我们将在 com.tutorialspoint 包下创建 System .java文件。
这是System.java文件的内容–
package com.tutorialspoint; public class System { public String getGreeting(String userName){ return "Hello " + userName + "!"; } }
第 4 步 – 创建规范文件
现在让我们在concordion项目下创建实际的规范文件。首先,我们需要创建一个名为specs的新源文件夹。该文件夹将包含规范文件,如 JUnitFixture 或测试运行程序和规范的 html 文件。现在我们需要创建一个名为specs.tutorialspoint的包。为此,请右键单击包浏览器部分中的规范,然后选择以下选项:新建 → 包。
接下来,我们将创建System.html和SystemFixture.java的specs.tutorialspoint包下的文件。此后,我们将在 specs 源文件夹下添加concordion.css。
这是System.html文件的内容–
<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.tutorialspoint; import com.tutorialspoint.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 文件和测试夹具有两个要点需要注意 –
-
System.html 是使用 concordion 命名空间的规范 html 文件。
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
-
System.html 使用 concordion:set 命令将临时变量 userName 的值设置为 Robert。这里,userName 是要传递给 System fixture 的 getGreeting 方法的参数。
When <span concordion:set="#userName">Robert</span> logs in the system
-
System.html 使用 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 的内容区域并选择Run as > JUnit Test Case。您将看到以下输出,junit 成功。
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html Successes: 1, Failures: 0
System.html 是 Concordion 测试运行的输出。
恭喜,您已成功创建第一个 Concordion 验收测试。此外,让我们在接下来的几章中开始做一些更有趣的事情。