using System.Reflection; using GFramework.Core.Abstractions.State; using GFramework.Core.State; namespace GFramework.Core.Tests.State; /// /// 为状态机测试提供仅限断言场景使用的反射辅助方法。 /// public static class StateMachineExtensions { /// /// 检查状态机内部缓存中是否已注册指定类型的状态。 /// /// 要检查的状态类型。 /// 待检查的状态机实例。 /// 找到对应状态类型时返回 ,否则返回 public static bool ContainsState(this StateMachine stateMachine) where T : IState { return stateMachine.GetType().GetField("States", BindingFlags.NonPublic | BindingFlags.Instance)? .GetValue(stateMachine) is Dictionary states && states.ContainsKey(typeof(T)); } }