Как смоделировать массив, содержащий объекты, используя mockito? - PullRequest
1 голос
/ 20 мая 2019

В моем модульном тесте Mockito я пытаюсь смоделировать массив, содержащий экземпляры объекта Message.Для этого я пытаюсь смоделировать его как обычные объекты, например:

private var messagesMock = mock(Array<Message>::class.java)

Это дает следующую ошибку / исключение:

org.mockito.exceptions.base.MockitoException: 
Cannot mock/spy class [Lrobot.fsrt.robotguest.common.data.Message;
Mockito cannot mock/spy because :
 - VM does not not support modification of given type

Как смоделироватьправильно ли использовать Mockito?

1 Ответ

3 голосов
/ 20 мая 2019

Отличный ответ: вы (почти) никогда не имитируете объекты, представляющие контейнеры!

Массив - это просто контейнер.

Вы создаете контейнер нужного размера, а затем помещаете свои макетированные объекты в этот обычный контейнер и убедитесь, что контейнер с вашим подготовленным содержимым будет использован вашим рабочим кодом.

Это так просто: вы не издеваетесь над массивами, списками или картами: вы создаете их как есть и манипулируете их контентом !

...