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 атрибут