Foreground Rejections
前台状态 Observer 处理被拒绝的时段和本机应用
为什么验证
用户删除了某个本机应用后,前台状态 Observer 还会继续采集这个应用;两个程序实例共用登记文件时,可能同时为同一个应用提交首版。这两种拒绝都有确定的处理方式,其他拒绝需要报告出来。约定见 Foreground State · 被拒绝的版本。
前置条件
通过 WebApplicationFactory 启动 API,连接一个独立的测试数据库,见 Database。程序实例使用独立的 SQLite 文件和登记文件,读数是模拟的。
操作与预期结果
| 操作 | 预期结果 |
|---|---|
| 一个时段上传后,用户删除它的本机应用;同一个应用的下一个时段结束并发送 | 本机应用得到新的 EntityId,登记文件随之更新;新时段引用新的本机应用,上传成功 |
| 两个程序实例共用登记文件,先后为同一个应用提交内容相同的首版 | 后提交的一方采用已保存的首版,它的时段引用这个首版,上传成功 |
| 时段因其他规则被拒绝 | 报告错误,暂停发送 |
测试实现
ObserverSdkTests 中的前台拒绝处理测试。
执行结果
Case ID:foreground-rejections
报告时间:
报告代码版本:d0ad859f366f8a9bd66443fc7a4fb2262bda1081
以下仅展示此 Case 在该报告中的执行结果。
- 在原报告中定位:ForegroundRecoversDeletedApplicationAndUpdatesRegistry
- 在原报告中定位:ForegroundInstancesSharingRegistryAdoptSavedApplicationFirstVersion
- 在原报告中定位:OtherForegroundRuleRejectionReportsErrorAndPausesSending
- 测试总数
- 3
- 通过
- 3
- 未成功
- 0
- 运行总耗时
- 未知