Все юнит тесты обычно находятся в папке 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
Комментариев нет:
Отправить комментарий