From df7ad24b4864f20e1fe9acb3a19642da503c23d3 Mon Sep 17 00:00:00 2001 From: GeWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Tue, 27 Jan 2026 13:03:47 +0800 Subject: [PATCH] =?UTF-8?q?test(coroutine):=20=E6=9B=B4=E6=96=B0=E5=8D=8F?= =?UTF-8?q?=E7=A8=8B=E5=8F=A5=E6=9F=84=E5=92=8C=E4=BB=BB=E5=8A=A1=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改CoroutineHandleTests中的Equals比较测试,使用不同的实例ID进行验证 - 在Equals测试中添加Key值的不同性验证 - 更新AsCoroutineInstruction测试文档,验证已完成任务的状态 - 移除重复的泛型版本测试方法 - 在TaskCoroutineExtensionsTests中移除未使用的句柄变量赋值 - 简化任务协程启动的测试逻辑,专注于调度器行为验证 --- .../coroutine/CoroutineHandleTests.cs | 9 ++++-- .../coroutine/TaskCoroutineExtensionsTests.cs | 28 ++++++++----------- 2 files changed, 18 insertions(+), 19 deletions(-) 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()); }