Version: 6000.3
语言: 中文
测试作的执行顺序
编辑器的产量说明

断言和比较

Unity Test Framework 使用特定于 Unity 的自定义 API 扩展了 NUnit,用于比较、断言和为您的断言提供约束。

主张

如果 Unity 记录的消息不是常规日志或警告消息,则测试失败。您可以使用LogAssert检查日志中是否有预期消息,以便在 Unity 记录消息时测试不会失败。

LogAssert.Expect在运行被测代码之前,因为预期日志检查在每一帧结束时运行。

如果未出现预期消息,或者 Unity 未记录任何常规日志或警告消息,测试还会报告失败。

以下示例使用LogAssert.Expect在编辑器日志中同时出现常规日志消息和错误消息:

[Test]
public void LogAssertExample()
{
    // Expect a regular log message
    LogAssert.Expect(LogType.Log, "Log message");
    
    // The test fails without the following expected log message     
    Debug.Log("Log message");
    
    // An error log
    Debug.LogError("Error message");
    
    // Without expecting an error log, the test would fail
    LogAssert.Expect(LogType.Error, "Error message");
}

使用约束断言

NUnit 允许您使用Assert.That机制,其中第一个参数是被测对象,第二个参数描述对象必须满足的条件。

Unity Test Framework 使用自定义约束类型扩展了这一点,并声明了叠加层Is类。要解决原始实现和自定义实现之间的歧义,您必须使用using语句或通过完整类型名称进行寻址UnityEngine.TestTools.Constraints.Is.

比较

Unity 测试框架提供了自定义相等比较器和实用程序,以便更轻松地验证测试中的自定义 Unity 类型值。可比较的类型包括 [Color]、[Quaternion] 和 Vectors。

使用这些类使用 NUnit 约束Unity 约束比较两个相同类型的对象在给定容差范围内的相等性。

Instance将默认计算误差值应用于比较。要设置特定的错误值,请使用一个参数构造函数实例化一个新的比较对象ctor(float error).

有关可用比较器的完整列表和示例用法,请参阅 API 参考UnityEngine.TestTools.Utils.

其他资源

测试作的执行顺序
编辑器的产量说明