5.6
修改商品实体
与前面的部分类似,在此部分中,您将向应用中添加另一项用于修改商品实体的增强功能。
下面,我们将快速过一遍修改应用数据库中实体的步骤:
- 添加测试,测试用于获取商品的 DAO 查询。
- 使用实体详情填充 Edit Item 界面中的文本字段。
- 使用 Room 更新数据库中的实体。
添加 DAO 测试
- 在
ItemDaoTest.kt
中,添加一个名为daoGetItem_returnsItemFromDB()
的测试。
@Test
@Throws(Exception::class)
fun daoGetItem_returnsItemFromDB()
- 定义函数。在协程内,向数据库添加一个商品。
@Test
@Throws(Exception::class)
fun daoGetItem_returnsItemFromDB() = runBlocking {
addOneItemToDb()
}
- 使用
itemDao.getItem()
函数从数据库中检索实体,并将其设置为名为item
的val
。
val item = itemDao.getItem(1)
- 将实际值与检索到的值进行比较,并使用
assertEquals()
断言。完成后的测试如下所示:
@Test
@Throws(Exception::class)
fun daoGetItem_returnsItemFromDB() = runBlocking {
addOneItemToDb()
val item = itemDao.getItem(1)
assertEquals(item.first(), item1)
}
- 运行测试并确保测试通过。
填充文本字段
运行应用后,请转到 Item Details 界面,然后点击 FAB,您可以看到界面标题现在为 Edit Item。不过,所有文本字段均为空。在此步骤中,您将使用实体详情填充 Edit Item 界面中的文本字段。