Тесты folks (возможности и ограничения)

Как пишутся тесты в Folks? 

Делаются слепки БД, какой она была до выполнения определенной функции и какой стала после. Соответственно, стандартный тест включает в себя:

  • dbStart — состояние БД перед выполнением функции. 
  • .*.params.xml — параметры, которые показывают, какая функция должна выполняться в тесте и как.

Результаты прогона тестов можно посмотреть в 

  • \target\surefire-reports\common-context-service\index.html — общий результат прогона

При написании автотестов стоит учитывать следующие возможности фреймворка:

Подготовка данных

Название теста

При написании тестов нужно обращать внимание на название промежуточных/агрегирующих директорий (они не должны начинаться с префикса test).

Все, что начинается на test, считается тестом и выполняется как тест. А так как внутри только другие папочки и нет dbEnd, тест считается успешно пройденным! А все тесты внутри такой директории игнорируются.

  • testSearch\test_01_origin — плохо, такой тест будет игнорироваться
  • search\test_s_01_origin — хорошо

Учитывая особенности запуска тестов, лучше в названии ставить префикс, чтобы потом гонять все test_s одним махом

Заполнение dbStart
  • Каждый лист — это отдельная таблица БД.
  • Название листа должно соответствовать названию таблицы из скриптов создания базы. (Перед каждым тестом таблица БД создается с нуля.  Если в названии таблички допустить ошибку, тест упадет, так как он не поймет, куда ему записывать данные — не существует такой таблицы)
  • В любой таблице обязательно надо заполнить not null колонки.
  • Остальные колонки заполнять необязательно (им будет присвоено значение null)
Корневые файлы данных

Тест умеет просматривать в поисках общих файлов вверх до главной директории — это позволяет использовать один skipTests.properties для всех папочек 



Сравнение результатов


Как указать ошибку в качестве ожидаемого результата выполнения теста?

Иногда нам необходимо убедиться, что задача упала с ошибкой, а не закончилась успешно.  В таком случае в файл feature.params.xml  добавляем параметр (внутрь основного bean) в таком виде:

Есть поддержка регэкспов!

feature.params.xml
<property name="errorMessagePattern" value="File with path 'picture.png' ignored.*"/>

Skip tests

Чтобы "заскипать" тест (игнорировать его при прогоне тестов), необходимо добавить его название в файл skipTests.properties, например

test_s_99_skipped_test = bug-1

При этом неважно, на каком уровне вложенности находится данный тест, достаточно указать его название. 

Файл skipTests.properties есть в каждой папке тестов, он один для всей группы тестов (на поиск, на рест, на соап)