refactor(tests): 提取架构初始化失败断言方法

- 添加 ArchitecturePhase 枚举的 using 引用
- 提取 AssertInitializationFailed 方法用于验证初始化失败状态
- 简化 AddPostRegistrationHook 中的 lambda 表达式语法
- 使用新提取的断言方法替换重复的断言逻辑
This commit is contained in:
GwWuYou 2026-01-02 12:20:17 +08:00
parent e19f4ce5a1
commit e543ef9baf
3 changed files with 24 additions and 9 deletions

View File

@ -1,4 +1,5 @@
using GFramework.Core.architecture; using GFramework.Core.Abstractions.enums;
using GFramework.Core.architecture;
using NUnit.Framework; using NUnit.Framework;
namespace GFramework.Core.Tests.tests; namespace GFramework.Core.Tests.tests;
@ -45,4 +46,16 @@ public abstract class ArchitectureTestsBase<TArchitecture> where TArchitecture :
Architecture = null; Architecture = null;
} }
} }
/// <summary>
/// 验证架构初始化失败的断言方法
/// 检查当前架构阶段是否为初始化失败状态
/// </summary>
protected void AssertInitializationFailed()
{
Assert.That(
Architecture!.CurrentPhase,
Is.EqualTo(ArchitecturePhase.FailedInitialization)
);
}
} }

View File

@ -133,13 +133,12 @@ public class AsyncArchitectureTests : ArchitectureTestsBase<AsyncTestArchitectur
[Test] [Test]
public async Task InitializeAsync_Should_Handle_Exception_Correctly() public async Task InitializeAsync_Should_Handle_Exception_Correctly()
{ {
Architecture!.AddPostRegistrationHook(a => { a.RegisterModel(new FailingModel()); }); Architecture!.AddPostRegistrationHook(a =>
a.RegisterModel(new FailingModel())
);
await Architecture.InitializeAsync(); await Architecture.InitializeAsync();
Assert.That( AssertInitializationFailed();
Architecture.CurrentPhase,
Is.EqualTo(ArchitecturePhase.FailedInitialization)
);
} }
} }

View File

@ -127,9 +127,12 @@ public class SyncArchitectureTests : ArchitectureTestsBase<SyncTestArchitecture>
[Test] [Test]
public void Architecture_Should_Stop_Initialization_When_Model_Init_Fails() public void Architecture_Should_Stop_Initialization_When_Model_Init_Fails()
{ {
Architecture!.AddPostRegistrationHook(architecture => { architecture.RegisterModel(new FailingModel()); }); Architecture!.AddPostRegistrationHook(a =>
// 调用初始化 a.RegisterModel(new FailingModel())
);
Architecture.Initialize(); Architecture.Initialize();
Assert.That(Architecture.CurrentPhase, Is.EqualTo(ArchitecturePhase.FailedInitialization));
AssertInitializationFailed();
} }
} }