Я нещодавно використовую тестово-керовану розробку (TDD), і це мала чудові впливи на мій результат розвитку та стійкість моєї бази даних. Я хотів би поширити цей підхід на деякі роботи з рендерінгу, які я роблю в OpenGL, але мені не вдалося знайти жодного хорошого підходу до цього.
Почну з конкретного прикладу, щоб ми знали, які саме речі я хочу перевірити; скажемо, що я хочу створити одиничний куб, який обертається навколо якоїсь осі, і що я хочу переконатися, що для деякої кількості кадрів кожен кадр відображається правильно.
Як я можу створити для цього автоматизований тестовий випадок? Переважно, я б навіть міг написати тестовий випадок, перш ніж писати будь-який код для виведення куба (за звичайними методами TDD.) Серед багатьох інших речей, я хотів би переконатися, що розмір, розташування та орієнтація куба є виправити у кожному винесеному кадрі. Можливо, я навіть хочу переконатися, що рівняння освітлення в моїх шейдерах є правильними у кожному кадрі.
Єдиний дистанційно корисний підхід до цього, який я натрапив, полягає у порівнянні відведеного виходу з опорним виведенням, що, як правило, виключає практику TDD, і є дуже громіздким.
Я можу продовжувати відповідати іншим бажаним вимогам, але боюся, що ті, які я вже перерахував, недоступні.