Unity 6.3
0 онлайн 38 гостей 3 в системе
Вход

Утверждение и сравнение

Unity Test Framework расширяет NUnit с Unity-специфическим пользовательским APIs для сравнения, утверждения и предоставления ограничений для ваших утверждений.

Утверждение

Тест не выполняется, если 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 Test Framework предоставляет пользовательские сравнительные равенства и утилиты для упрощения проверки пользовательских значений типа Unity в тестах. Сравнимые типы включают [Color], [Quaternion] и Vectors.

Используйте эти классы для сравнения двух объектов одного типа на равенство в пределах заданного допуска с использованием ограничений NUnit или Unity ограничений.

Вызов Instance для применения к сравнению значения ошибки расчета по умолчанию. Чтобы установить конкретное значение ошибки, инстанцируйте новый объект сравнения с помощью конструктора с одним аргументом ctor(float error).

Полный список доступных сравнителей и примеры их использования см. в API для UnityEngine.TestTools.Utils.

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