mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-25 13:33:28 +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]
|
[Test]
|
||||||
public void Equals_Should_Return_False_For_Different_Handles()
|
public void Equals_Should_Return_False_For_Different_Handles()
|
||||||
{
|
{
|
||||||
var handle1 = new CoroutineHandle(1);
|
var handle1 = new CoroutineHandle(5);
|
||||||
var handle2 = new CoroutineHandle(1);
|
var handle2 = new CoroutineHandle(10);
|
||||||
|
|
||||||
|
// 测试通过Equals方法比较不同实例ID的句柄
|
||||||
Assert.That(handle1.Equals(handle2), Is.False);
|
Assert.That(handle1.Equals(handle2), Is.False);
|
||||||
|
|
||||||
|
// 额外验证这两个句柄的Key也不同
|
||||||
|
Assert.That(handle1.Key, Is.Not.EqualTo(handle2.Key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 验证Equals方法与null对象的比较
|
/// 验证Equals方法与null对象的比较
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -40,7 +40,7 @@ public class TaskCoroutineExtensionsTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 验证AsCoroutineInstruction可以处理已完成的Task
|
/// 验证AsCoroutineInstruction可以处理已完成的Task并验证其状态
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Test]
|
[Test]
|
||||||
public void AsCoroutineInstruction_Should_Handle_Completed_Task()
|
public void AsCoroutineInstruction_Should_Handle_Completed_Task()
|
||||||
@ -48,20 +48,14 @@ public class TaskCoroutineExtensionsTests
|
|||||||
var task = Task.CompletedTask;
|
var task = Task.CompletedTask;
|
||||||
var instruction = task.AsCoroutineInstruction();
|
var instruction = task.AsCoroutineInstruction();
|
||||||
|
|
||||||
|
// 验证指令类型
|
||||||
Assert.That(instruction, Is.InstanceOf<WaitForTask>());
|
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>
|
/// <summary>
|
||||||
/// 验证AsCoroutineInstruction<T>应该能够访问Task结果
|
/// 验证AsCoroutineInstruction<T>应该能够访问Task结果
|
||||||
@ -165,7 +159,7 @@ public class TaskCoroutineExtensionsTests
|
|||||||
var completed = false;
|
var completed = false;
|
||||||
var tcs = new TaskCompletionSource<object?>();
|
var tcs = new TaskCompletionSource<object?>();
|
||||||
|
|
||||||
var handle = scheduler.StartTaskAsCoroutine(tcs.Task);
|
scheduler.StartTaskAsCoroutine(tcs.Task);
|
||||||
|
|
||||||
Assert.That(scheduler.ActiveCoroutineCount, Is.EqualTo(1));
|
Assert.That(scheduler.ActiveCoroutineCount, Is.EqualTo(1));
|
||||||
Assert.That(completed, Is.False);
|
Assert.That(completed, Is.False);
|
||||||
@ -190,7 +184,7 @@ public class TaskCoroutineExtensionsTests
|
|||||||
|
|
||||||
var tcs = new TaskCompletionSource<int>();
|
var tcs = new TaskCompletionSource<int>();
|
||||||
|
|
||||||
var handle = scheduler.StartTaskAsCoroutine(tcs.Task);
|
scheduler.StartTaskAsCoroutine(tcs.Task);
|
||||||
|
|
||||||
Assert.That(scheduler.ActiveCoroutineCount, Is.EqualTo(1));
|
Assert.That(scheduler.ActiveCoroutineCount, Is.EqualTo(1));
|
||||||
|
|
||||||
@ -213,7 +207,7 @@ public class TaskCoroutineExtensionsTests
|
|||||||
var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
|
var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
|
||||||
var task = Task.CompletedTask;
|
var task = Task.CompletedTask;
|
||||||
|
|
||||||
var handle = scheduler.StartTaskAsCoroutine(task);
|
scheduler.StartTaskAsCoroutine(task);
|
||||||
|
|
||||||
scheduler.Update();
|
scheduler.Update();
|
||||||
|
|
||||||
@ -230,7 +224,7 @@ public class TaskCoroutineExtensionsTests
|
|||||||
var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
|
var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
|
||||||
var task = Task.FromException(new InvalidOperationException("Test"));
|
var task = Task.FromException(new InvalidOperationException("Test"));
|
||||||
|
|
||||||
var handle = scheduler.StartTaskAsCoroutine(task);
|
scheduler.StartTaskAsCoroutine(task);
|
||||||
|
|
||||||
Assert.DoesNotThrow(() => scheduler.Update());
|
Assert.DoesNotThrow(() => scheduler.Update());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user