Давайте начнем программировать с Concordion. Прежде чем вы начнете писать свой первый пример с использованием Concordion, вы должны убедиться, что вы правильно настроили свою среду Concordion, как описано в руководстве Concordion — Environment Environment . Мы также предполагаем, что вы немного разбираетесь в Eclipse IDE.
Итак, давайте приступим к написанию простого приложения Concordion, которое напечатает следующий приемочный тест —
Example When Robert logs in the system, a greeting "Hello Robert!" is displayed.
Шаг 1 — Создать проект Java
Первым шагом является создание простого Java-проекта с использованием Eclipse IDE. Выберите « Файл» → «Создать» → «Проект» и, наконец, выберите «Мастер Java-проектов» из списка. Теперь назовите ваш проект как Concordion, используя окно мастера следующим образом:
Как только ваш проект будет успешно создан, вы увидите следующее содержимое в Project Explorer —
Шаг 2 — Добавить необходимые библиотеки
Давайте добавим concordion и его зависимости в наш проект. Для этого щелкните правой кнопкой мыши имя вашего проекта concordion и затем выберите параметры, доступные в контекстном меню: « Путь сборки» → «Настроить путь сборки» для отображения окна «Путь сборки Java» следующим образом:
Теперь используйте кнопку « Добавить внешние JAR» , доступную на вкладке « Библиотеки », чтобы добавить следующий основной JAR-файл из папки Concordion.
- concordion-1.5.1
- Hamcrest-ядро-1,3
- JUnit-4,12
- OGNL-2.6.9
- XOM-1.2.5
Шаг 3 — Создание исходных файлов
Теперь давайте создадим реальные исходные файлы в рамках проекта concordion . Во-первых, нам нужно создать пакет с именем com.tutorialspoint . Для этого щелкните правой кнопкой мыши на src в разделе проводника пакетов и выберите опцию: New → Package .
Далее мы создадим системный файл .java в пакете com.tutorialspoint.
Вот содержимое файла System.java —
package com.tutorialspoint; public class System { public String getGreeting(String userName){ return "Hello " + userName + "!"; } }
Шаг 4 — Создание файлов спецификации
Теперь давайте создадим актуальные файлы спецификаций в рамках проекта concordion . Во-первых, нам нужно создать новую исходную папку с именем specs . Эта папка будет содержать файлы спецификаций, такие как JUnitFixture или test runner, а также файлы html, которые являются спецификациями. Теперь нам нужно создать пакет под названием specs.tutorialspoint . Для этого щелкните правой кнопкой мыши на спецификации в разделе проводника пакетов и выберите параметр: Создать → Пакет .
Далее мы создадим файлы System.html и SystemFixture.java в пакете specs.tutorialspoint. После этого мы добавим 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 — это файл спецификации html, который использует пространство имен concordion.
System.html — это файл спецификации html, который использует пространство имен concordion.
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
-
System.html использует команду concordion: set, чтобы установить значение временной переменной userName, которая будет Робертом. Здесь userName — это параметр, передаваемый методу getGreeting системного приспособления.
System.html использует команду concordion: set, чтобы установить значение временной переменной userName, которая будет Робертом. Здесь userName — это параметр, передаваемый методу getGreeting системного приспособления.
When <span concordion:set="#userName">Robert</span> logs in the system
-
System.html использует команду concordion: assertEquals для проверки вывода функции getGreeting (userName) на Hello Robert !.
System.html использует команду concordion: assertEquals для проверки вывода функции getGreeting (userName) на Hello Robert !.
a greeting "<span concordion:assertEquals="getGreeting(#userName)"> Hello Robert!</span>" is displayed.
-
SystemFixture — это тестовое устройство JUnit, аннотированное с помощью ConcordionRunner.class.
SystemFixture — это тестовое устройство JUnit, аннотированное с помощью ConcordionRunner.class.
@RunWith(ConcordionRunner.class) public class SystemFixture {}
-
SystemFixture имеет метод getGreeting, который возвращает приветствия пользователю.
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. Далее, давайте начнем делать что-то более интересное в следующих нескольких главах.