# 测试情况 ## 当前测试布局 - 测试集中在 `Assets/Modules/ShrinkDataSaver/Tests`。 - 测试程序集定义见 `Assets/Modules/ShrinkDataSaver/Tests/ShrinkDataSaver.Tests.asmdef`。 - 该 asmdef: - 仅在 `Editor` 平台启用 - 依赖 `UnityEngine.TestRunner` 与 `UnityEditor.TestRunner` - 通过 `UNITY_INCLUDE_TESTS` 控制 - 额外引用 `Newtonsoft.Json.dll` ## 已覆盖模块 - `Assets/Modules/ShrinkDataSaver/Tests/ShrinkSaveTests.cs` - 模块注册 - 保存、加载、删除 - 事件触发 - 关键模块失败行为 - 版本迁移事件 - 查询接口 - 自动保存间隔 - 元数据读取 - `LoadedSlot` 状态 - 多模块往返 - `Assets/Modules/ShrinkDataSaver/Tests/ShrinkSettingsTests.cs` - 设置读写、监听、持久化与防抖行为 - `Assets/Modules/ShrinkDataSaver/Tests/SaveEncryptorTests.cs` - 加解密往返、错误密码、空输入等边界 - `Assets/Modules/ShrinkDataSaver/Tests/MigrationChainTests.cs` - 注册、链式迁移、缺步、回滚 - `Assets/Modules/ShrinkDataSaver/Tests/DataSerializerTests.cs` - JSON 序列化基础行为 - `Assets/Modules/ShrinkDataSaver/Tests/SaveTypesTests.cs` - 类型层面的默认值与结构行为 ## 测试风格 - 同时使用同步 NUnit 测试和基于 `UniTask.ToCoroutine` 的 `UnityTest`。 - 使用 `MockStorageProvider` 模拟存储后端,避免真实磁盘依赖。 - 通过 `ResetForTesting()`、`MigrationChain.Clear()` 等内部重置方法控制静态状态污染。 ## 当前数量 - 当前扫描到 `[Test]` 与 `[UnityTest]` 标记共 `78` 个。 - 测试密度主要集中在 `ShrinkDataSaver`,并未均匀覆盖整个仓库。 ## 明显缺口 - 没有看到 `ShrinkEventBus` 对应的测试目录。 - `EventBus` 的优先级排序、取消传播、异步处理、自动注册织入结果,没有自动化测试证据。 - 编辑器窗口也没有独立测试。 - 没有发现 CI 配置文件,说明测试是否自动执行未知,当前更像本地手动运行模式。 ## 适合后续补强的位置 - `Assets/Modules/ShrinkEventBus/Runtime/EventBus.cs` - `Assets/Modules/ShrinkEventBus/Runtime/ListenerList.cs` - `Assets/Modules/ShrinkEventBus/CodeGen/Editor/EventBusILPostProcessor.cs` - `Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEventBusBridge.cs` ## 结论 - 这个仓库的测试现状可以概括为:`ShrinkDataSaver` 覆盖较扎实,`ShrinkEventBus` 和集成层明显偏弱。 - 如果后续要发包或稳定演进,优先级最高的补测点是 EventBus 核心行为与编译织入结果。