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