Я увлекаюсь идеей модульного тестирования, но у меня проблемы с его применением в программировании игр. Игры очень сдержанны и часто код не разбивается на отдельные единицы. По моему опыту, большинство функций мутируют состояние, а не возвращают значения.
Рассмотрим простое действие, подобное playerJump(height)
. Я хотел бы иметь набор тестов, который проверяет большое количество случаев, чтобы убедиться, что прыжки всегда работают так, как ожидалось. Однако эта функция, скорее всего, не вернет значения и будет иметь побочный эффект, player.velocity.y = -height
и checkCollisions(player)
. Я не могу придумать ясный unit test, чтобы построить вокруг этого.
Является ли модульное тестирование просто нежизнеспособным в приложениях с высокой степенью готовности, таких как игры? Являются ли преимущества модульного тестирования такими замечательными, что функционально программировать игры?
Update:
Игры изнутри содержат ряд подробных статей об использовании Test Driven Development в играх. Я настоятельно рекомендую их всем, кто интересуется этой темой. Вот первая статья:
http://gamesfromwithin.com/stepping-through-the-looking-glass-test-driven-game-development-part-1