Утверждение и сравнение
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.