Убедитесь, что массив установлен - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь проверить, что мой массив получает заданные значения, но я не могу понять, как сделать сравнение с Mockito / Mockito Kotlin

class Presenter(private var repo: repo,
                private var list: List<Data> = arrayListOf()) {
   fun setData(){
       list = repo.getData()
   }
}

Я не могу понять, как проверить, что это происходит, и не уверен, как правильно сделать это после поиска в Google

@Test
fun `setData`() {

    val myList: List<Data> = mock()
    val repo: Repo = mock()
    val presenter = Presenter(repo, myList)

    val returnedList: List<Data> = listOf(Data())

    whenever(repo.getData()).thenReturn(returnedList)

    presenter.setData()

    verify ?????
}

Я пытался сделать myList реальным объектом и фиктивным объектом, но ни один из них не работает?

Такие вещи, как myList.count () просто возвращают 0 после вызова его с помощью real или mocked () вместо ожидаемого 1

Достаточно либо подтвердить, что размер равен 1, либо равен списку.

1 Ответ

0 голосов
/ 02 ноября 2018

Итак, учитывая первоначальное обсуждение вопроса, если я тестирую с реальным списком, и я не устанавливаю список на результаты repo.getData, а вместо этого добавляю все содержимое в список, он работает как ожидалось.

Я бы по-прежнему был заинтересован в том, чтобы сделать это, просто назначив значение вместо добавления всего, однако.

class Presenter(private var repo: repo,
                private var list: ArrayList<Data> = arrayListOf()) {
   fun setData() {
       list.clear()
       list.addAll(repo.getData())
   }
}

@Test
fun `setData`() {
    val myList: ArrayList<Data> = arrayListOf()
    val repo: Repo = mock()
    val presenter = Presenter(repo, myList)

    val returnedList: List<Data> = listOf(Data())

    whenever(repo.getData()).thenReturn(returnedList)

    presenter.setData()

    assertEquals(1, myList.count)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...