Я пытаюсь написать тест в хранилище динамодб, но я не могу смоделировать возвращение функции, проблема в том .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.