Статьи

FitNessize Your JEE dev с помощью минутного проекта


В этой статье показано, как настроить FitNesse в вашей среде разработки при работе с CRUD-операциями в Relation Database. MinuteProject 4 FitNesse генерирует полный набор вики-страниц FitNesse и связанных с ними java-приложений, позволяя вам выполнить сброс базы данных, а также выполнять интуитивно понятные операции CRUD над таблицами и выбирать поверх представлений.

Чтобы проиллюстрировать этот трек MinuteProject, используемая база данных взята из
витрины Lazuly .

Источники можно найти в разделе
lazuly-fitnesse .

Эта страница покажет вам:

  • Механизм работы FitNesse + Minuteproject в Agile разработке
  • Как создать прибор CRUD
  • Затем интегрируйте в свой сценарий, чтобы получить QA

обзор


Установить FitNesse и создать заказ CRUD вику для вас модели

Необходимых условий

  • Используйте Java 6
  • Установите Lazuly DB (скрипт sql здесь )

Установка

Загрузить FitNesse

Выполнить java -jar fitnesse.jar

В браузере перейдите по
адресу http: // localhost, чтобы просмотреть вики FitNesse.

Сгенерируйте вики FitNesse для своей модели.

  • Скачать MinuteProject
  • Создайте с помощью следующего скрипта настройки минутного проекта: mp-config-LAZULY-FITNESSE.xml
  • Установите этот скрипт в / mywork / config и запустите generate-model. (Cmd / sh) mp-config-LAZULY-FITNESSE.xml

-Конфиг-LAZULY-FITNESSE.xml т.пл конфигурационный файл

<!DOCTYPE root>
<generator-config>
 <configuration>
  <conventions>
   <target-convention type="enable-updatable-code-feature" />
  </conventions> 
  <model name="conference" version="1.0" package-root="net.sf.mp.demo">
   <data-model>
    <dataSource>
     <driverClassName>org.gjt.mm.mysql.Driver</driverClassName>
     <url>jdbc:mysql://127.0.0.1:3306/conference</url>
     <username>root</username>
     <password>mysql</password>
    </dataSource>
   </data-model>
   <business-model>
         <business-package default="conference">
             <condition type="package" startsWith="STAT" result="statistics"></condition>
             <condition type="package" startsWith="COUNTRY" result="admin"></condition>
             <condition type="package" startsWith="ROLE" result="admin"></condition>        
         </business-package>   
    <enrichment>
     <conventions>
         <view-primary-key-convention 
            type="apply-default-primary-key-otherwise-first-one" 
            default-primary-key-names="ID" >
         </view-primary-key-convention>
     </conventions>
    </enrichment>
   </business-model>
  </model>
  <targets> 
   <target refname="FitNesse" 
      name="default" 
      fileName="mp-template-config-fitnesse.xml" 
      outputdir-root="D:/DEV/LAZULY/lazuly-fitnesse"
      templatedir-root="../../template/framework/fitnesse">
   </target> 
   <target refname="LIB" 
      fileName="mp-template-config-bsla-LIB-features.xml" 
      templatedir-root="../../template/framework/bsla">
   </target>
  </targets>  

 </configuration>
</generator-config>

Что генерируется

Вики Светильники для операций CRUD

Источник вики для копирования в корневой каталог

FitNesse CRUD Wiki FitNesse, созданный для вашей модели.

Поднимите фрагмент, который вам нужен:

  • Настройте модель вашей БД
  • Выполнить проверку работоспособности 

    • правильно ли хранятся мои данные после X UC в сценарии?
Подраздел Lazuly FitNesse для выбора операций

Подробная информация о выбранных вики-приборах для представления ‘stat_mb_by_role’

 

Lazuly FitNesse подвики для операций обновления обновления вставки Подробная информация о вставке, обновлении, удалении
вики-фикстур для таблицы ‘address’

Ассоциированный Java Fixture 

Сборка для ваших нужд

Сборка Java Fixture Project

Скомпилируйте код в IDE

  • добавить сгенерированный src в ваши исходные каталоги
  • добавить MP 4 FitNesse depencies Весов RIES
    • На данный момент они предоставляются в пакете MP в / target / fitnesse / и / target / fitnesse / dep
  • Lazuly-fitnesse поставляется с проектом eclipse, который компилирует код в / bin
  • Каталог компиляции должен ссылаться на директивы пути FitNesse wiki.

Настройка FitNesse Lazuly Wiki

Althought MinuteProject предоставляет CRUD Wiki, готовую к использованию, целью этого раздела является настройка пользовательской вики, которая будет использоваться для вашего UC.

  • Создайте свое приложение FitNesse Wiki HomePage

    • Отредактируйте главную страницу, добавьте раздел под названием «FitNesseLazulyScenario»

      • Добавить фрагмент [[Lazuly] [FitNesse.LazulyScenario]]
  • Нажми на Лазулы? или перейдите на http: //localhost/FitNesse.LazulyScenario
  • Составьте простую структуру

    • Простая структура предложения

      • Раздел HomePage (определите путь для использования)
      • Раздел настройки (используется для сброса БД)
      • Раздел определения данных (используется для определения общих переменных, на которые ссылаются в сценарии)
      • Заполнить раздел (используется для инициализации БД с данными)
      • Пара секций UC

Напишите пример сценария.

Этот сценарий заполнит несколько таблиц базы данных Lazuly и проверит, является ли ожидаемый результат в представлениях правильным.

Раздел HomePage

Определяет 

  • разные страницы (SetUp, VariableDefinition, UC разделы) 
  • Путь к классам


 

Раздел настройки 

  • Сбросить базу данных

    • Скрипт сброса ссылок, выполненный Scriptella (etl.xml)

      • Адаптируйте переменную resetfilepathvar, чтобы указать путь к файлу.
    • etl.xml ссылается на скрипт 3 sql

      • reset_db.sql, который предложил оператор Delete для каждой таблицы

        • Его можно изменить, поскольку порядок удаления может быть неправильным
        • В этом случае добавьте — MP-MANAGED-STOP-GENERATING, чтобы предотвратить потерю вашей модификации для последовательной генерации.
      • insert_reference_data.sql

        • Добавьте данные, которые вы хотите
      • commit.sql, который просто выполняет коммит
  • Параметр соединения для указания на базу данных, которая включает

    • URL БД
    • Драйвер JDBC
    • имя пользователя
    • пароль
  • Весь этот код генерируется в /ConferenceFitnesseWikiSetup/content.txt. Его также можно скопировать с http: // localhost / ConferenceFitnesseWikiSetup


 

Раздел определения переменной


Используйте директиву Fitnesse! Define, чтобы добавить соответствующее имя переменной для вашего сценария

Эти переменные будут позже упомянуты в вашем
разделе  UCs.



Страница настройки автоматически включается в начале вашего сценария.

Но вы должны ссылаться на раздел «Определение переменной».
Для этого используйте директиву FitNesse! Include (! Include VariableDefinition)

Фрагмент CRUD для извлечения из MP-файла FitNesse Wiki для создания собственной инициализации БД.

Вставить справочные данные Страна, Роль

Вставить бизнес-данные: Адрес, Конференция, Конференц-член



 

UC Check section

Подберите фрагмент CRUD из MP, сгенерированного FitNesse Wiki, чтобы создать свою собственную обычную инициализацию БД.

В этом случае я просто проверяю, что данные хранятся правильно.

Существует представление, которое собирает информацию BI, и я использую ее для проверки правильности информации.

Заключение

Этот пример показывает, что вы можете очень легко использовать приспособление CRUD fitnesse (требуется Zero LOC разработки), настроенное для вашей модели данных.

Подводя итог, вот основные моменты:

  • Сброс БД
  • Инициализировать БД
  • Выполнить проверку работоспособности
  • Настройте FitNesse для ваших UFC Hadoc для приложения, ориентированного на данные JEE
MinuteProject Spin-offs

На этом этапе вы можете гарантировать, что данные, полученные из представления, верны.

Это означает, что у вас есть QA на вашей модели.

Если у представлений есть поле, содержащее уникальные значения, вы можете воспользоваться дополнительным значением MinuteProject, то есть использовать другую дорожку для генерации из коробки:
  • Приложение Web2.0 в Openxava поверх представлений. Смотрите в этом блоге следующую статью 
  • Приложение REST.
  • Приложение веб-службы.
Для настоящих UC

Здесь UC продемонстрировали озабоченность только операциями CRUD поверх сущностей БД.

В следующих двух статьях, посвященных подготовке, будет показано, как интегрироваться с:
  • Бэкэнд JPA2 ORM
  • Spring / JPA / Hibernate бэкэнд
Дополнительная информация

MinuteProject 4 FitNesse