Files
FlowScope/docs/reviews/addressables-integration-acceptance.md
2026-06-05 11:06:20 +08:00

3.8 KiB
Raw Blame History

FlowScope Addressables 集成验收记录

日期2026-06-04

验收目的

本文用于补齐 P2 第一阶段的 Addressables 真实集成验收缺口。目标不是重新设计资源系统,而是确认当前 FlowScope.Addressables.AddressablesResourceBackend 能通过真实 Addressables key 完成加载、释放和错误诊断。

项目配置

已确认:

  • My project/Packages/manifest.json 包含 com.unity.addressables,当前版本为 1.21.21
  • My project/Assets/FlowScope/Addressables/FlowScope.Addressables.asmdef 引用 FlowScope.RuntimeUnity.AddressablesUnity.ResourceManager
  • My project/Assets/FlowScope/Tests/PlayMode/FlowScope.Tests.PlayMode.asmdef 引用 FlowScope.Addressables
  • 当前项目已生成 My project/Assets/AddressableAssetsData
  • My project/ProjectSettings/EditorBuildSettings.asset 已登记 Addressables settings config object。

测试资源

真实 Addressables 测试资源:

  • 路径:Assets/FlowScope/Tests/PlayMode/Resources/Fixtures/Addressables/FlowScopeAddressablesText.txt
  • 内容:FlowScope Addressables Acceptance
  • GUID7e04733ce9dab74459592d3bd99fcafd
  • Addressables groupDefault Local Group
  • Addressables keyFlowScope.Tests.Addressables.Text
  • 资源类型:TextAsset

Default Local Group.asset 中已确认存在:

m_GUID: 7e04733ce9dab74459592d3bd99fcafd
m_Address: FlowScope.Tests.Addressables.Text

自动化验收

已在 My project/Assets/FlowScope/Tests/PlayMode/Resources/AddressablesResourceBackendTests.cs 补充真实 PlayMode 集成测试:

  • LoadAsync_WithRealTextAssetKey_LoadsTextAsset
  • LoadAsync_WithMissingKey_ThrowsDiagnosticException
  • LoadAsync_WithMismatchedType_ThrowsDiagnosticException

覆盖范围:

  • AddressablesResourceBackend.LoadAsync<TextAsset> 能通过真实 key 加载真实 TextAsset
  • AddressablesResourceBackend.Release 能释放已加载资源。
  • 缺失 key 会产生可捕获诊断异常,并包含缺失 key。
  • 类型不匹配会产生可捕获诊断异常,并包含 key 和请求类型。

本轮同时修复了 AddressablesResourceBackend.LoadAsync<T> 的失败状态处理:当 Addressables handle 存在 OperationExceptionStatus 不是 SucceededResultnullbackend 会抛出包含 key、请求类型和 backend 名称的 InvalidOperationException

验收结果

用户已在 Unity Test Runner 中执行全量 EditMode / PlayMode结果全绿。

本轮针对 Addressables 集成用例的最终结果:

项目 结果 证据
真实 LoadAsync<TextAsset> 通过 FlowScope.Tests.Addressables.Text 加载真实 TextAsset
Release<TextAsset> 通过 成功释放已加载资源,未产生未处理日志
缺失 key 诊断 通过 FlowScope.Tests.Addressables.Missing 产生可捕获异常
类型不匹配诊断 通过 TextAsset key 以 GameObject 请求时产生可捕获异常
Unity Test Runner EditMode 通过 用户反馈全量 EditMode 全绿
Unity Test Runner PlayMode 通过 用户反馈全量 PlayMode 全绿

剩余注意事项

  • 当前 Addressables 测试资源已整理到 Resources/Fixtures/Addressables 路径下,为后续 package Tests~ 迁移去掉临时目录命名。
  • Assets/FlowScope/Tests/PlayMode/Resources/Fixtures 当前只剩空目录 meta属于提交前清理候选。
  • 当前验收仍在主项目内完成P2 后续 package 阶段还需要在干净 Unity 项目中验证本地 package path 或 Git URL 安装。

结论

P2 第一阶段的 Addressables 真实集成验收已完成。当前不再只是编译通过或人工步骤文档,而是已有真实 PlayMode 自动化测试覆盖成功加载、释放、缺失 key 和类型不匹配诊断。