Android Robolectric: OutOfMemoryError - превышен лимит накладных расходов GC при создании ArrayList - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу создать тест для метода, который возвращает ArrayList.Тип ArrayList - это пользовательский объект с именем DateItem.Но когда я пытаюсь создать ArrayList в своем тестовом коде (который находится в папке test), тест завершился неудачно со следующим сообщением:

java.lang.OutOfMemoryError: GC overhead limit exceeded

Process finished with exit code 255

Вот мой код:

var expectedDateItems: ArrayList<DateItem> = ArrayList()
val currentDate = date1Start
while (currentDate.isBefore(date1End)) {
    val dateItem = DateItem(currentDate, ArrayList())
    expectedDateItems.add(dateItem)
    currentDate.plusDays(1)
}

Мне интересно, как создать такой ArrayList в моем тестовом коде.Я рассмотрел этот ответ , но он предназначен для всего приложения, а не только для целей тестирования.Как выделить больше памяти для модульного тестирования?

РЕДАКТИРОВАТЬ: после отладки код не удалось, когда в этой строке: val dateItem = DateItem(currentDate, ArrayList()).

1 Ответ

0 голосов
/ 15 февраля 2019

На самом деле у вас бесконечный цикл WHILE, потому что currentDate.plusDays(1) return copy of currentDate.Изменить на:

currentDate = currentDate.plusDays(1)
...