GeWuYou e83dd278b3 test(coroutine): 添加协程指令单元测试并改进现有测试
- 为 Delay 指令添加完整的单元测试覆盖各种时间情况
- 为 WaitForCoroutine 指令添加单元测试验证协程等待功能
- 为 WaitForFrames 指令添加单元测试覆盖帧计数逻辑
- 为 WaitForTask<T> 指令添加单元测试包括异常处理场景
- 为 WaitOneFrame 指令添加单元测试验证单帧等待
- 为 WaitUntil 和 WaitWhile 指令添加单元测试覆盖谓词逻辑
- 将 WaitForMultipleEventsTests 中的异步方法标记为 async Task 类型
- 修改测试事件类的 Data 属性为可变的 set 访问器而不是只读 init
- 优化 WaitForMultipleEventsTests 中的断言注释描述
2026-02-10 23:47:40 +08:00

55 lines
1.3 KiB
C#

using GFramework.Core.coroutine.instructions;
using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine
{
[TestFixture]
public class WaitUntilTests
{
[Test]
public void Constructor_WithNullPredicate_ThrowsArgumentNullException()
{
// Act & Assert
Assert.Throws<ArgumentNullException>(() => new WaitUntil(null!));
}
[Test]
public void IsDone_ReturnsPredicateResult_True()
{
// Arrange
var condition = false;
var waitUntil = new WaitUntil(() => condition);
// Act
condition = true;
// Assert
Assert.That(waitUntil.IsDone, Is.True);
}
[Test]
public void IsDone_ReturnsPredicateResult_False()
{
// Arrange
var condition = false;
var waitUntil = new WaitUntil(() => condition);
// Assert
Assert.That(waitUntil.IsDone, Is.False);
}
[Test]
public void Update_DoesNotChangeState()
{
// Arrange
var condition = false;
var waitUntil = new WaitUntil(() => condition);
// Act
waitUntil.Update(0.1);
// Assert
Assert.That(waitUntil.IsDone, Is.False);
}
}
}