包含此页的版本:
不含此页的版本:
本节将向您介绍自定义[UnityTest]属性,允许创建在多个帧上运行的测试。
我们对 Nunit 框架所做的一个重要扩展是引入了[UnityTest]属性。该属性允许创建可以在特定条件后产生并恢复运行的测试。因此,测试的返回类型必须为IEnumerator.然后,您可以返回 yield 指令或 null,如下所示:
[UnityTest]
public IEnumerator MyTest()
{
DoSomething();
// Skip 1 frame.
yield return null;
DoSomethingElse();
}
在上面的代码段中,我们调用DoSomething方法,然后跳过一帧,然后调用DoSomethingElse方法。
有关 C# 中的 yield 关键字的详细信息,请参阅 Microsoft 文档。
在示例中 9_UnityTestAttribute你会发现一个 播放模式(Play Mode) 测试程序集,其中设置了一个播放模式测试。PlayMode 测试还没有主体,但有一个名为PrepareCube()这将设置一个应用了一些物理特性的立方体。
任务是初始化多维数据集,然后验证它在一帧过去后是否已移动。
完整的解决方案可在9_UnityTestAttribute_Solution样本。
[UnityTest]
public IEnumerator CubeMovesDown()
{
var cubeUnderTest = PrepareCube();
var initialPosition = cubeUnderTest.transform.position;
yield return null;
Assert.That(cubeUnderTest.transform.position, Is.Not.EqualTo(initialPosition));
}