Интеграционное тестирование Spring Framework с переопределением класса DAO - PullRequest
0 голосов
/ 19 января 2019

Я настраиваю интеграционные тесты в Spring, чтобы проверить, правильно ли работают мои конечные точки API.Там нет кода, потому что вопрос является вопросом проблемы проектирования.

Сейчас у меня есть определенный класс DAO, который общается с реальной БД для операций ввода-вывода.

У меня наивная реализация вхранилище ресурсов памяти для тестирования, которое не требует установки БД.

Мой вопрос заключается в том, как мне настроить тесты в Spring, чтобы хранение ресурсов осуществлялось реализацией в памяти.(Мне нужно смоделировать http-запросы и утверждать, что они работают должным образом, сейчас тест запущен, но хранение ресурсов выполняется на реальном БД с использованием DAO для этого)

PS я могу заменитьнастоящий db в application.properties для H2 db, который будет работать с текущим DAO, но мне не нужно, чтобы это изменение было на уровне DB, мне нужно, чтобы оно было на уровне DAO, чтобы использовать другую реализацию хранилища ресурсовкласс.

Я относительно новичок в тестировании Spring, и я использую jUnit для тестирования.

Большое спасибо.Вся помощь приветствуется.

1 Ответ

0 голосов
/ 19 января 2019

Если вы хотите переопределить bean-компоненты в тестах (используйте другую реализацию), вы можете создать еще один контекст Spring (в тестовых классах или ресурсах), в котором вы создаете bean-компоненты с такими же идентификаторами .

Если вы используете XML - этого будет достаточно, просто поместите контексты в правильном порядке при объявлении их в тесте.Если вы используете конфигурацию Java - вы можете убедиться, что реализация теста используется, пометив поддельный бин как @Primary

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...