diff --git a/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs b/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs index 35a7515..2b51a49 100644 --- a/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs +++ b/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs @@ -81,12 +81,17 @@ public class CoroutineHandleTests [Test] public void Equals_Should_Return_False_For_Different_Handles() { - var handle1 = new CoroutineHandle(1); - var handle2 = new CoroutineHandle(1); + var handle1 = new CoroutineHandle(5); + var handle2 = new CoroutineHandle(10); + // 测试通过Equals方法比较不同实例ID的句柄 Assert.That(handle1.Equals(handle2), Is.False); + + // 额外验证这两个句柄的Key也不同 + Assert.That(handle1.Key, Is.Not.EqualTo(handle2.Key)); } + /// /// 验证Equals方法与null对象的比较 /// diff --git a/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs b/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs index 780d207..518f282 100644 --- a/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs +++ b/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs @@ -40,7 +40,7 @@ public class TaskCoroutineExtensionsTests } /// - /// 验证AsCoroutineInstruction可以处理已完成的Task + /// 验证AsCoroutineInstruction可以处理已完成的Task并验证其状态 /// [Test] public void AsCoroutineInstruction_Should_Handle_Completed_Task() @@ -48,20 +48,14 @@ public class TaskCoroutineExtensionsTests var task = Task.CompletedTask; var instruction = task.AsCoroutineInstruction(); + // 验证指令类型 Assert.That(instruction, Is.InstanceOf()); + + // 验证已完成的任务是否立即可用 + Assert.That(task.IsCompleted, Is.True); + Assert.That(task.Status, Is.EqualTo(TaskStatus.RanToCompletion)); } - - /// - /// 验证AsCoroutineInstruction可以处理已完成的Task - /// - [Test] - public void AsCoroutineInstructionOfT_Should_Handle_Completed_Task() - { - var task = Task.FromResult(42); - var instruction = task.AsCoroutineInstruction(); - - Assert.That(instruction, Is.InstanceOf>()); - } + /// /// 验证AsCoroutineInstruction应该能够访问Task结果 @@ -165,7 +159,7 @@ public class TaskCoroutineExtensionsTests var completed = false; var tcs = new TaskCompletionSource(); - var handle = scheduler.StartTaskAsCoroutine(tcs.Task); + scheduler.StartTaskAsCoroutine(tcs.Task); Assert.That(scheduler.ActiveCoroutineCount, Is.EqualTo(1)); Assert.That(completed, Is.False); @@ -190,7 +184,7 @@ public class TaskCoroutineExtensionsTests var tcs = new TaskCompletionSource(); - var handle = scheduler.StartTaskAsCoroutine(tcs.Task); + scheduler.StartTaskAsCoroutine(tcs.Task); Assert.That(scheduler.ActiveCoroutineCount, Is.EqualTo(1)); @@ -213,7 +207,7 @@ public class TaskCoroutineExtensionsTests var scheduler = new CoroutineScheduler(timeSource, instanceId: 1); var task = Task.CompletedTask; - var handle = scheduler.StartTaskAsCoroutine(task); + scheduler.StartTaskAsCoroutine(task); scheduler.Update(); @@ -230,7 +224,7 @@ public class TaskCoroutineExtensionsTests var scheduler = new CoroutineScheduler(timeSource, instanceId: 1); var task = Task.FromException(new InvalidOperationException("Test")); - var handle = scheduler.StartTaskAsCoroutine(task); + scheduler.StartTaskAsCoroutine(task); Assert.DoesNotThrow(() => scheduler.Update()); }