Тестирование
В этом разделе описаны вопросы тестирования в контексте модели и базы данных.
Предок для тестов Dbm_Test
Классы unittest-ов должны быть унаследованы от класса
jandcode.core.dbm.test.Dbm_Test
.
В тестовых методах доступны определенные инструменты, пример:
import jandcode.core.dbm.*
import jandcode.core.dbm.mdb.*
import jandcode.core.dbm.test.*
import org.junit.jupiter.api.*
class Dbm_Test_Example extends Dbm_Test {
@Test
public void test1() throws Exception {
// Модель, в контексте которой выполняются тесты
Model model = this.getModel()
// Экземпляр класса jandcode.core.dbm.mdb.Mdb
// Соединение с базой данных будет установлено автоматически
// при вервом обращении к базе данных
Mdb mdb = this.getMdb() // в groovy-коде можно использовать mdb, вместо getMdb()
// Экземпляр класса jandcode.core.dbm.test.DbmTestSvc
// Набор утилитных методов для модели и базы данных
DbmTestSvc dbm = this.dbm
}
}
Без дополнительной настройки, в тестах будет использоватся модель default
.
Можно настроить конкретную модель дл использования в тестах.
Для этого в файле test.cfx
необходимо указать необходимую модель:
<root>
<test>
<!-- Определение модели по умолчанию в тестах.
-->
<dbm
model-default="my.model.name"
/>
</test>
</root>
Автосоздание базы данных для тестов
Система тестирования может создавать базу данных в момент первого обращения к ней. Настройка:
<root>
<test>
<!-- Определение модели по умолчанию в тестах и указание,
что базу данных нужно создавать, если она не существует.
Также в базе будет создана структура базы.
-->
<dbm
model-default="default"
create-db="true"
create-db-struct="true"
/>
</test>
</root>
Свойства:
create-db
- если значениеtrue
и база не существует, то пустая база данных будет создана автоматически, при первом обращении к нейcreate-db-struct
- если значениеtrue
, то в базе данных будет выполнен скрипт, который создаст структуру базы данных по текущему состоянию модели.
Если параметры create-db
и create-db-struct
равны true
, и база данных существует
и в ней какая-то структура, например от последнего выполнения тестов, то выполняется
сравнение теукщей структуры в модели и структуры в базе данных. Если они отличаются,
база данных удаляется и создается заново, с актуальной структурой.