Хороший день для всех. Я пытаюсь написать функциональные тесты для некоторых конечных точек Spring (Spring здесь не ключ), которые используют мое приложение REST как черный ящик и пытаются подключиться к нему через http.Консистенция материализованного представления освежающего результата между соединениями to jdbc
Алгоритм выглядит следующим образом:
- Приложения начинается с пустым тестовой базой данных
- начинают испытания, в
@Before
методы он заполняет базу данных с необходимыми данными - Тест выполняет запрос HTTP к применению и получает ответ
- Тест сравнивает данный отклик с ожидаемым.
Практически все тесты работают хорошо, но в одном случае приложение использует материализованное представление, и когда тест пытается получить данные с конечной точки, возвращаемые данные почти пусты. Это также происходит, когда я в@Before
метод делает REFRESH MATERIALIZED VIEW SQL. Но когда я делаю это в pgadmin (в том же соединении), все работает хорошо.
Я думаю, это происходит из-за того, что приложение сначала подключается через jdbc (когда база данных и вид пусты), а когда второе соединение теста обновляет материализованное представление, оно не может видеть изменения в нем.
Я прав?
И мой вопрос: какой алгоритм я должен использовать (я не могу изменить запрос приложения и добавить команду обновления там), чтобы решить эту проблему? Спасибо