Тесты 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 есть в каждой папке тестов, он один для всей группы тестов (на поиск, на рест, на соап)