mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 创建 AsyncTestArchitecture 类用于异步测试 - 添加 AsyncTestSystem 实现异步初始化系统 - 创建 ArchitectureTestsBase 基类统一同步异步测试逻辑 - 实现 AsyncArchitectureTests 异步架构测试用例 - 将同步测试重构为继承自 ArchitectureTestsBase - 移除重复的测试方法实现 - 重命名模型初始化状态属性为 Initialized
55 lines
1.4 KiB
C#
55 lines
1.4 KiB
C#
using GFramework.Core.Abstractions.enums;
|
|
using GFramework.Core.architecture;
|
|
using GFramework.Core.events;
|
|
using GFramework.Core.Tests.model;
|
|
using GFramework.Core.Tests.system;
|
|
|
|
namespace GFramework.Core.Tests.architecture;
|
|
|
|
/// <summary>
|
|
/// 异步测试架构,用于测试异步模型和系统的初始化
|
|
/// </summary>
|
|
public class AsyncTestArchitecture : Architecture
|
|
{
|
|
/// <summary>
|
|
/// 初始化完成事件是否触发
|
|
/// </summary>
|
|
public bool ReadyEventFired { get; private set; }
|
|
|
|
/// <summary>
|
|
/// Init 方法是否调用
|
|
/// </summary>
|
|
public bool InitCalled { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 阶段进入记录
|
|
/// </summary>
|
|
public List<ArchitecturePhase> PhaseHistory { get; } = new();
|
|
|
|
/// <summary>
|
|
/// 异步初始化架构
|
|
/// </summary>
|
|
protected override void Init()
|
|
{
|
|
InitCalled = true;
|
|
|
|
// 注册模型
|
|
RegisterModel(new AsyncTestModel());
|
|
|
|
// 注册系统
|
|
RegisterSystem(new AsyncTestSystem());
|
|
|
|
// 订阅 Ready 事件
|
|
Context.RegisterEvent<ArchitectureEvents.ArchitectureLifecycleReadyEvent>(_ => { ReadyEventFired = true; });
|
|
}
|
|
|
|
/// <summary>
|
|
/// 进入阶段时记录
|
|
/// </summary>
|
|
/// <param name="next"></param>
|
|
protected override void EnterPhase(ArchitecturePhase next)
|
|
{
|
|
base.EnterPhase(next);
|
|
PhaseHistory.Add(next);
|
|
}
|
|
} |