- Concordion 教程
- Concordion - 首页
- Concordion - 概述
- Concordion - 环境搭建
- Concordion - 第一个应用
- Concordion - set 命令
- assertEquals 命令
- Concordion - assertTrue 命令
- Concordion - assertFalse 命令
- Concordion - execute 命令
- Concordion - 返回对象
- Concordion - 返回 Map
- 返回多值结果
- Concordion - 在表格上执行
- Concordion - 在列表上执行
- Concordion - verifyRows 命令
- Concordion - run 命令
- 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 及其依赖项。为此,右键单击您的项目名称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的包。为此,右键单击包资源管理器部分中的spec,然后选择:新建 → 包。
接下来,我们将在 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 夹具的 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 的内容区域,然后选择以...方式运行>JUnit 测试用例。您将看到以下带有 junit 成功消息的输出。
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html Successes: 1, Failures: 0
System.html 是 Concordion 测试运行的输出。
恭喜您,您已成功创建了第一个 Concordion 验收测试。接下来,让我们在接下来的几章中开始做一些更有趣的事情。