50 Оттенков зелёного
На дворе 21й век, а значит тестирование одна из важных частей разработки не только в геймдеве, но и в любом программном продукте.
В больших компаниях тестирование входит в процесс разработки и обычно им занимается отдел QA(Quality assurance или Проверки качества). В мелких же компаниях каждый суслик агроном и эта роль ложится на кого попало (хотя обычно это ГД или программист), что часто заканчивается анекдотом: “Чукча не читатель!”, игры выходят в сыром состоянии, а тестирование в итоге проводится на игроках. =)
Техническая сторона проверки качества это тоже довольно большая тема, с солидным набором инструментария начиная с Unity Remote (в нашем случае с Unity, который помогает тестировать на устройстве разработчику), всяких Test Flight и закрытых каналов в Google Play (для тестирования на более глобальном уровне), а заканчивая инструментами для логгинга https трафика с целью проверки каких-нибудь специфических запросов.
Эта статья будет про создание юнит-тестов, небольшой части огромной темы, которая должна облегчить жизнь программистам.
Особый всплеск интереса к тестированию можно отметить в начале 2000х, где апогеем можно считать формирование понятий экстремального программирования(Extreme Programming) и разработки через тестирование(Test-driven development), где Юнит-тестирование(Unit-testing) является одним из основополагающих инструментов. Найти информацию по этой тематике в интернете довольно легко, так что не будем заострять своё внимание на объяснениях основ. Если же вам необходима дополнительная информация с примерами, начните с википедии, а дальше по необходимости.
Юнит-тесты в Unity можно создавать при помощи Unity Test Framework, основанном на NUnit. Так как это довольно объёмный фреймворк, то ознакомиться с его документацией будет нелишним.
Добавление теста будет проходить на примере Hints Library, о создании которой рассказывалось в предыдущем посте:
Открываем инспектор тестов Window > General > Test Runner
Переключаемся в PlayMode
и создаём при помощи кнопки "Create PlayMode Test Assembly Folder"
папку для наших тестов
При помощи кнопки "Create Test Script in current folder"
создаём файл для тестов
Для кода нуждающегося в тестировании создаём Create > Assembly Definition
В файл Tests.asmdef
, находящийся в папке Tests, добавляем ссылку на Assembly Definition
нашего кода
Не забываем нажать кнопку Apply
внизу и сохранить изменения
В скрипт, созданный на шаге 3, пишем наши тесты
|
|
Запускаем тесты
Радуемся результату
Это маленький пример для демонстрации создания юнит-теста. В дальнейшем на алтарь тестирования должно быть положено много времени и кода, часто код тестов оказывается даже больше, чем код бизнес-части, но это поможет сохранить вам уйму времени на вылавливание ошибок, связанных с регрессом. При этом юнит-тесты это всего лишь небольшая часть всего необходимого тестирования, ещё нужно добавить интеграционные тесты, а также протестировать UI, но это выходит за границы статьи о юнит-тестах. Пока! =)