GFramework/GFramework.Core.Tests/Tests/ArchitectureTestsBase.cs
GeWuYou 52f95c7e5f refactor(tests): 将Architecture目录重命名为Architectures
- 重命名GFramework.Core.Tests/Architecture目录为GFramework.Core.Tests/Architectures
- 更新所有相关文件中的命名空间引用
- 修复GameContextTests中TestArchitecture类的基类引用
- 修复TestArchitectureBase类的基类引用
- 修复ArchitectureTestsBase泛型约束中的类型引用
- 更新其他测试文件中的命名空间导入路径
2026-03-10 19:01:50 +08:00

63 lines
1.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Core.Abstractions.Enums;
using GFramework.Core.Architectures;
namespace GFramework.Core.Tests.Tests;
/// <summary>
/// 架构测试基类,封装同步/异步共通测试逻辑
/// </summary>
/// <typeparam name="TArchitecture">架构类型必须继承自Architecture</typeparam>
public abstract class ArchitectureTestsBase<TArchitecture> where TArchitecture : Architecture
{
protected TArchitecture? Architecture;
/// <summary>
/// 子类必须实现创建具体架构实例
/// </summary>
/// <returns>创建的架构实例</returns>
protected abstract TArchitecture CreateArchitecture();
/// <summary>
/// 测试设置方法,在每个测试开始前执行
/// 清理游戏上下文并创建架构实例
/// </summary>
[SetUp]
public void SetUp()
{
GameContext.Clear();
Architecture = CreateArchitecture();
}
/// <summary>
/// 测试清理方法,在每个测试结束后执行
/// 销毁架构实例并清理游戏上下文
/// </summary>
[TearDown]
public async Task TearDown()
{
try
{
if (Architecture != null)
{
await Architecture.DestroyAsync();
}
}
finally
{
GameContext.Clear();
Architecture = null;
}
}
/// <summary>
/// 验证架构初始化失败的断言方法
/// 检查当前架构阶段是否为初始化失败状态
/// </summary>
protected void AssertInitializationFailed()
{
Assert.That(
Architecture!.CurrentPhase,
Is.EqualTo(ArchitecturePhase.FailedInitialization)
);
}
}