Unity 6.3
0 онлайн 95 гостей 3 в системе
Вход
Программирование в Unity Шаг 180 из 210

9. Использование атрибута UnityTest

Цели обучения

В этом разделе мы познакомим вас с атрибутом [UnityTest], который позволяет создавать тесты, работающие на нескольких кадрах.

Введение и мотивация

Важным расширением фреймворка Nunit, которое мы сделали, является введение атрибута [UnityTest]. Атрибут позволяет создавать тесты, которые могут возвращаться и возобновлять работу после определенного условия. Поэтому тест должен иметь тип возврата IEnumerator. Затем вы можете возвращать инструкцию yield или null, так:

[UnityTest]
public IEnumerator MyTest()
{
 DoSomething();
 // Skip 1 frame.
 yield return null;
 DoSomethingElse();
}

В фрагменте выше мы вызываем метод DoSomething, затем пропускаем один кадр перед вызовом метода DoSomethingElse.

Для получения дополнительной информации о ключевом слове yield в C#, см. Документация Microsoft.

2010 год

В течение образец 9_UnityTestAttribute вы найдете тестовую сборку режима воспроизведения, настроенную с одним тестом режима воспроизведения в ней. 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));
}

Дополнительные ресурсы

UnityTest атрибут