mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
test(coroutine): 更新协程句柄和任务扩展测试
- 修改CoroutineHandleTests中的Equals比较测试,使用不同的实例ID进行验证 - 在Equals测试中添加Key值的不同性验证 - 更新AsCoroutineInstruction测试文档,验证已完成任务的状态 - 移除重复的泛型版本测试方法 - 在TaskCoroutineExtensionsTests中移除未使用的句柄变量赋值 - 简化任务协程启动的测试逻辑,专注于调度器行为验证
This commit is contained in:
parent
684d4601d0
commit
df7ad24b48
@ -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));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 验证Equals方法与null对象的比较
|
||||
/// </summary>
|
||||
|
||||
@ -40,7 +40,7 @@ public class TaskCoroutineExtensionsTests
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 验证AsCoroutineInstruction可以处理已完成的Task
|
||||
/// 验证AsCoroutineInstruction可以处理已完成的Task并验证其状态
|
||||
/// </summary>
|
||||
[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<WaitForTask>());
|
||||
|
||||
// 验证已完成的任务是否立即可用
|
||||
Assert.That(task.IsCompleted, Is.True);
|
||||
Assert.That(task.Status, Is.EqualTo(TaskStatus.RanToCompletion));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 验证AsCoroutineInstruction<T>可以处理已完成的Task
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void AsCoroutineInstructionOfT_Should_Handle_Completed_Task()
|
||||
{
|
||||
var task = Task.FromResult(42);
|
||||
var instruction = task.AsCoroutineInstruction<int>();
|
||||
|
||||
Assert.That(instruction, Is.InstanceOf<WaitForTask<int>>());
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 验证AsCoroutineInstruction<T>应该能够访问Task结果
|
||||
@ -165,7 +159,7 @@ public class TaskCoroutineExtensionsTests
|
||||
var completed = false;
|
||||
var tcs = new TaskCompletionSource<object?>();
|
||||
|
||||
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<int>();
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user