Orisumi

SDK Local Versions

草稿的合并与冻结,以及两种提交策略

为什么验证

草稿决定后端会收到几个版本,冻结决定版本何时不再改写、按什么顺序发送。两种提交策略的区别只在草稿何时冻结。约定见 Submission · 版本的状态 和 提交策略。

前置条件

SDK 使用独立的 SQLite 文件,后端是记录每次请求、按需返回响应的 HTTP 处理器。

操作与预期结果

操作预期结果
形成一份 Observation 的草稿,再补全一次VersionId 和 previousVersionId 不变
业务代码引用一个实体,之后再补全它被引用的版本已冻结,补全形成新版本,previousVersionId 指向被引用的版本
Observation 引用一个仍是草稿的观测内容,然后冻结 Observation观测内容先冻结;发送时观测内容排在 Observation 之前
结束后提交:通知结束前发送一次,通知结束后再发送第一次没有发送这份 Observation;第二次只发送一个版本,内容是最终结果
及时提交:形成草稿后发送,再补全并发送后端依次收到两个版本,第二个的 previousVersionId 指向第一个
结束后提交:重启 SDK,再通知结束并发送发送的是重启前那份草稿的 VersionId

测试实现

ObserverSdkTests 中的草稿与策略测试。

执行结果

Case ID:sdk-local-versions

报告时间:

报告代码版本:d0ad859f366f8a9bd66443fc7a4fb2262bda1081

查看最新原报告

以下仅展示此 Case 在该报告中的执行结果。

  • TUnit 1.72.16.0
  • runnervmr9t6g
  • Ubuntu 26.04.1 LTS
  • .NET 10.0.14
  • 26 Oct 2026, 05:36:12 UTC
测试总数
4
通过
4
未成功
0
运行总耗时
未知

贡献者

页面历史