Страницы

Поиск по вопросам

вторник, 12 февраля 2019 г.

Как тестировать объекты со сцены юнити?

Все юнит тесты обычно находятся в папке Editor и не наследуют от MonoBehaviour. Как протестировать элемент со сцены в юнит тесте или проще говоря как добавить элемент сцены в юнит тест? P.S. Как я понимаю искать элементы с помощью Find, FindGameObjectWithTag и т.д. не совсем правильно.


Ответ

Один из способов, как мне кажется, это просто создать новый пустой объект в тестируемом методе, добавив нужный компонент или инстанциировать нужный префаб и запустить тест? Пример:
GameObject go = new GameObject(); go.AddComponent();
// do smth...

Но...

Unity Test Tools - пакет, с помощью которого можно протестировать объекты на сцене.
Например к объекту прикрепляется компонент Assertion Component (он есессн будет Monobehaviour):

В нём можно задать любые параметры, которые душе угодно: объект тестирования, параметры тестировани, с чем сравнивать, сколько должен длиться тест, в какой момент времени проверять (Start, Update, OnTriggerEnter и прочее) и многое другое.
Документацию о нем можно почитать их доки:
bitbucket.org/Unity-Technologies/unitytesttools/wiki/Home
Ознакомиться можно также посмотрев небольшое видео в обучающих материалах на самом сайте Unity:
https://unity3d.com/ru/learn/tutorials/topics/production/unity-test-tools.
Там описан пример как с Unit test так и Integration test

Комментариев нет:

Отправить комментарий