По-перше, вам знадобиться блок тестування одиниць. Раніше я використовував UnitTest ++ та Google Test . Перший дуже легкий, а другий більш характерний, але дещо громіздкий. Він добре поєднується з Google Mock, якщо вам потрібні такі речі. Звичайно, існує багато інших варіантів: див. Цей список (можливим автором UnitTest ++) та Вікіпедію, наприклад.
Тестування підрозділу - це написання орієнтованих тестів, щоб підкреслити окремі незалежні біти коду ("одиниці") за різних сценаріїв. Хоча в деяких випадках ви можете протестувати все, зазвичай не практично досягти 100-відсоткового покриття, і, особливо в іграх, може бути досить складно - можна сперечатися, чи те, чи одиничне тестування результатів рендерінгу має сенс, корисне чи "справжній" одиничний тест незалежно.
Важливо пам’ятати, що будь-яке (автоматизоване) тестування краще, ніж ніяке (автоматизоване) тестування. Тож не варто занадто наголошувати на тому, що ваші тести не є "справжніми одиничними тестами", і пишатися тим, що у вас просто є тести. Рамки тестування блоків, як правило, корисні для того, щоб будувати більш "тісні" тести, оскільки вони включають функціональність для тестів на упаковку та рівномірно повідомляти про несправності.
Я б закликав вас воскресити свої старі тести і вбудувати їх у тестовий проект, використовуючи одну з доступних фреймворків - те, що ви можете легко запускати час від часу (або автоматично, як частина версії або збірки інтеграції), яка працює на всіх ваші тести. Напишіть нові тести на біти коду, оскільки стане очевидним, що вони будуть вам корисні, наприклад, якщо ви виявите тонкий помилку, який ви могли виявити за допомогою тесту, ви можете додати його, щоб знайти будь-які регресії, які ви можете зробити в майбутньому.
Ви, ймовірно, виявите, що в основному ваш корисний код нижчого рівня піддається тестуванню одиниць, в іграх. Це добре - це основний код, який може порушити багато вищих шарів, якщо він зламається.
Ви не ходите в чистилище програміста за те, що у вашій кодовій базі немає тестів на кожну маленьку функцію та логічні ворота, тому не витрачайте більше часу, ніж потрібно на написання тестів. Якщо вам доводиться думати більше або витрачати значно більше часу на написання тестів для модуля, ніж у першу чергу вам потрібно було написати автор, ви можете витрачати свій час. Тестування одиниць - тестування взагалі - це інструмент, який ви навчитеся правильно використовувати, щоб допомогти вам, а не справа, яку вам доведеться виконувати за все.