0:00:01.050,0:00:04.140 这就是 testLocationTable 方法的样子 0:00:04.140,0:00:07.000 首先 获取对可写数据库的引用 0:00:07.000,0:00:09.480 这是因为我们要修改它 0:00:09.480,0:00:11.630 然后 使用测试工具中的 0:00:11.630,0:00:16.149 函数为一行位置数据创建内容值 0:00:16.149,0:00:20.340 之后 将内容值对象插入位置表 0:00:20.340,0:00:23.590 插入语句的返回值应为行 ID 0:00:23.590,0:00:28.040 如果为负数 则表示插入失败 所以在此使用断言 0:00:28.040,0:00:31.970 由于我们要精确验证数据库是否仅包含 0:00:31.970,0:00:35.640 插入的记录 因此查询位置表 并为所有参数 0:00:35.640,0:00:39.950 传入 null 从而默认查询所有表格行和列 0:00:39.950,0:00:42.260 查询会返回光标 0:00:42.260,0:00:45.470 我们可以确定是否无法将其移至第一行 0:00:45.470,0:00:49.940 最后 从测试工具中调用 validateCurrentRecord 0:00:49.940,0:00:52.450 以验证查询是否返回正确的记录 0:00:52.450,0:00:55.600 validateCurrentRecord 从我们插入的 0:00:55.600,0:00:57.460 内容值中获取值对集 0:00:57.460,0:01:01.390 然后 它会循环访问这些值对 0:01:01.390,0:01:04.030 并使用 cursor.getColumnIndex 按名称获取记录集中各列的索引 0:01:05.120,0:01:08.350 我们需要列索引来从光标中获取数据 0:01:08.350,0:01:11.065 请注意 预测始终按顺序返回 0:01:11.065,0:01:14.695 因此 如果指定预测 则可以安全地使用 0:01:14.695,0:01:17.695 预测数组中的索引 而无需像这样查找索引 0:01:17.695,0:01:19.595 我们回到测试中 0:01:19.595,0:01:23.665 我们做了检查 通过确保移到下一条会失败来保证 0:01:23.665,0:01:28.715 数据库仅包含一条记录 然后 关闭光标和数据库以防资源泄漏 0:01:28.715,0:01:31.360 最后 我们返回 locationRowId 0:01:31.360,0:01:34.040 我们运行下测试 看看会发生什么 0:01:34.040,0:01:38.220 测试通过了 [声音] 只需要再编写一个测试了