Я пытаюсь разработать для себя простое приложение для инвентаризации и использую базу данных ROOM с Flow в качестве типа возвращаемого значения для запросов, поэтому при обновлении базы данных запрос автоматически выдает мой список элементов инвентаря, а пользовательский интерфейс обновляется автоматически.
в DAO:
Код: Выделить всё
@Query("SELECT * FROM inventoryitem ORDER BY favourite = 0, count = 0")
fun getInventory(): Flow
Код: Выделить всё
init {
viewModelScope.launch(Dispatchers.IO) {
database.inventoryDao().getInventory().collect {
inventory.value = it
}
}
}
Я пытаюсь написать простой тест вставки для моей модели представления, который проверяет, будет ли при вставке нового элемента в базу данных мой инвентарь обновляться сам:
Код: Выделить всё
@Test
fun simpleInsertTest() = runTest {
viewModel.addInventoryItem(testItems[0])
assertEquals(viewModel.inventory.value, listOf(testItems[0]))
}
Is there any better way to wait for the new emission other than using this approach?
Thanks in advance
Источник: https://stackoverflow.com/questions/781 ... the-delays
Мобильная версия