Как мокать ДАО, работающее с динамической таблицей, с использованием Mockito?
Здравствуйте. Пишу юнит-тесты на сервис, который который активно работает с другими сервисами. Другие сервисы в основном делегируют вызовы к ДАО. Часть ДАО работает со справочниками, часть - с динамическими таблицами (в которых постоянно меняются данные в процессе работы программы).
Вопрос: как мокать такие ДАО/сервисы, работающие с динамическими таблицами? Для моков использую Mockito.
Просто сейчас как раз пишу юнит-тест на метод, который дважды обращается к сервису с одними и теми же данными (запрос данных). Но в первом случае в ответ должен прийти пустой список, а во втором (после записи в таблицу) - список с одним элементом.
С when()и thenReturn() не получается это сделать. Пока идея только написать свой мок-класс с коллекцией внутри.
PS Пока нашёл, что можно два раза вызвать thenReturn(), но ещё не пробовал. Да и мне не очень нравится это решение, так как у меня скорее зависит не от того, сколько раз сделан запрос данных, а от того, когда следующий раз посылается запрос на получение данных, или, вернее - после чего (после каких действий).
так как у меня скорее зависит не от того, сколько раз сделан запрос данных, а от того, когда следующий раз посылается запрос на получение данных, или, вернее - после чего (после каких действий)
т.е. типа первый вызов - одна запись, потом вызываем insert или delete, и в зависимости от этого возвращаем или две записи, или ноль?
боюсь, это уже за пределами возможности (да и предназначения) моков...