Я использую HSQLDB для интеграционного тестирования слоя данных, которое является большим. Однако я нахожу, что мои ограничения внешнего ключа мешают моим тестам. Например, для тестирования простого выбора на одной таблице я должен вставить фиктивные данные в пять дополнительных таблиц. Это заставляет меня хотеть бросить вещи.
Я имею аннотации JPA всюду по нашему типовому кодексу и настроил, в спящем режиме для воссоздания схемы (hbm2ddl.create-отбрасывание) в конфигурации. Соединения интерпретируются правильно как ограничения внешнего ключа, когда таблицы сгенерированы.
То, что я хотел бы, к также:
Если это полезно, я использую Spring для автосоединения этих тестов проводом. Рассматриваемые тесты наследовались AbstractTransactionalJUnit4SpringContextTests.
Что Вы думаете? Это может быть сделано?
Вы можете деактивировать ограничения FK с помощью следующей инструкции:
SET REFERENTIAL_INTEGRITY FALSE;
Вы можете выполнить это с помощью JDBC утверждения
до ваших методов тестирования ( и установите его обратно на ИСТИНА
после).
Я бы подумал о том, чтобы потратить некоторое время на создание пары фикстур, возможно с DBUnit, который вы вставляете @Before.
Кстати, AbstractTransactionalJUnit4Test устарел в Spring 3.0