Учебники

Конкордеон — первое применение

Давайте начнем программировать с 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» следующим образом:

Путь сборки 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.

Исходные файлы concordion

Вот содержимое файла 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 в исходную папку спецификации.

файлы спецификаций concordion

Вот содержимое файла 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. Далее, давайте начнем делать что-то более интересное в следующих нескольких главах.