From f022f25ae6a77d407cb53dfc214460e45dd88a1a Mon Sep 17 00:00:00 2001 From: GwWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Tue, 30 Dec 2025 19:03:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor(architecture):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=E4=B8=8A=E4=B8=8B=E6=96=87=E6=B8=85=E7=90=86?= =?UTF-8?q?=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将测试专用的 ResetForTests 方法重命名为 Clear 并改为公共方法 - 在测试初始化时添加上下文清理确保测试环境纯净 - 在测试清理时使用 try-finally 确保架构正确销毁和上下文清理 - 修复了架构对象可能未正确清理的潜在问题 --- .../tests/ArchitectureInitializationTests.cs | 12 ++++++++++-- GFramework.Core/architecture/GameContext.cs | 6 +++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/GFramework.Core.Tests/tests/ArchitectureInitializationTests.cs b/GFramework.Core.Tests/tests/ArchitectureInitializationTests.cs index aaec305..fa147af 100644 --- a/GFramework.Core.Tests/tests/ArchitectureInitializationTests.cs +++ b/GFramework.Core.Tests/tests/ArchitectureInitializationTests.cs @@ -15,14 +15,22 @@ public class ArchitectureInitializationTests [SetUp] public void SetUp() { + GameContext.Clear(); _architecture = new TestArchitecture(); } [TearDown] public void TearDown() { - _architecture!.Destroy(); - _architecture = null; + try + { + _architecture?.Destroy(); + } + finally + { + GameContext.Clear(); + _architecture = null; + } } private TestArchitecture? _architecture; diff --git a/GFramework.Core/architecture/GameContext.cs b/GFramework.Core/architecture/GameContext.cs index 354f342..1c26c91 100644 --- a/GFramework.Core/architecture/GameContext.cs +++ b/GFramework.Core/architecture/GameContext.cs @@ -102,11 +102,11 @@ public static class GameContext ArchitectureDictionary.TryRemove(architectureType, out _); } - // 测试专用 + /// - /// 为测试重置所有架构上下文(仅内部使用) + /// 清空所有架构上下文绑定 /// - internal static void ResetForTests() + public static void Clear() { ArchitectureDictionary.Clear(); }