- Concordion教程
- Concordion - 主页
- Concordion - 概述
- Concordion - 环境设置
- Concordion - 首次应用
- Concordion - 设置命令
- 断言等于命令
- Concordion-assertTrue 命令
- Concordion-assertFalse 命令
- Concordion - 执行命令
- Concordion - 返回对象
- Concordion - 返回地图
- 返回多值结果
- Concordion - 在表上执行
- Concordion - 在列表上执行
- Concordion - verifyRows 命令
- Concordion - 运行命令
- Concordion有用资源
- Concordion - 快速指南
- Concordion - 有用的资源
- Concordion - 讨论
Concordion - 首次应用
让我们开始使用 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及其依赖项。为此,右键单击您的项目名称concorion,然后按照上下文菜单中的可用选项进行操作:构建路径 → 配置构建路径以显示 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的包。为此,请右键单击包资源管理器部分中的规范,然后选择选项:新建 → 包。
接下来,我们将在specs.tutorialspoint包下创建System.html和SystemFixture.java文件。此后,我们将在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 验收测试。此外,让我们在接下来的几章中开始做一些更有趣的事情。