Не могу смоделировать DynamoDB запрос toList () - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь написать тест в хранилище динамодб, но я не могу смоделировать возвращение функции, проблема в том .toList (), который я использую после запроса объектов, при использовании Mockito.mock () в классе ItemCollection, когда код пытается использовать .toList (), происходит сбой с NullPointerException:

Мой код:

fun findUser(id: String) : List<Item> {
    val query = userTable.query("Pk", id)
    return query.toList()
}

Мой тест:

private val table = Mockito.mock(Table::class.java)
private val itemCollection = Mockito.mock(ItemCollection::class.java)

private val userRepo = UserRepository(table)

@Test
fun `should call user repository`() {
    whenever(
        table.query(
            eq("Pk"),
            any()
        )
    ).thenReturn(itemCollection as ItemCollection<QueryOutcome>?)

    whenever(itemCollection.toList()).thenReturn(emptyList<Item>())

    userRepo.findUser("1234")

    verify(table, times(1)).query(eq("Pk"), any())
}

Я пытался смоделировать возврат toList, но он тоже не работает. Удаление этой фиктивной строки toList при отладке вылетает в этой строке return query.toList()

Я использую Mockito, JUnit и Kotlin.

...