Когда в модульном тесте требуется Список или любая другая Коллекция, первый вопрос, который нужно задать себе: я должен создать для него макет или создать Список или Коллекцию, содержащую макеты.
Когда тестируемая логика не использует список, а просто передает список, чем вы можете его смоделировать.
В противном случае обычно лучше не издеваться над списком или коллекцией, а создать нормальный, содержащий ложныеобъекты, потому что может быть очень трудно узнать, какие методы Списка или Коллекций должны быть заглушки. Какие методы вызываются при использовании цикла for для итерации элементов, при использовании итератора для них, при использовании потока для них, ...? Я часто использую Collections.singletonList или Arrays.asList с фиктивными параметрами для инициализации списков при написании модульных тестов.
Я вижу, что вы насмехаетесь над списком, а затем вызываете метод add, чтобы добавить в него данные при настройкеконтрольная работа. Не имеет смысла добавлять данные в макетированный список. Вы можете использовать Mockito.when, чтобы вернуть его, когда он должен быть возвращен, но тогда у вас возникнут проблемы, потому что вам может понадобиться заглушить больше методов, и будет сложно узнать, какие из них (isEmpty, size, ...). То, что вы добавляете объект data в список, вероятно, означает, что тестируемый метод не просто передает список, а получает доступ к данным в нем. В этом случае, не насмехайтесь над списком, а насмехайтесь над объектами данных, которые вы в него помещаете.