J'aime beaucoup l'idée des tests unitaires, mais j'ai du mal à l'appliquer à la programmation de jeux. Les jeux sont très évolutifs et souvent le code ne se décompose pas en unités distinctes. D'après mon expérience, la plupart des fonctions modifient l'état plutôt que de renvoyer des valeurs.
Prenons l'exemple d'une action simple comme playerJump(height)
. J'aimerais avoir une suite de tests qui vérifie une grande variété de cas pour s'assurer que le saut fonctionne toujours comme prévu. Cependant, cette fonction ne renverra probablement aucune valeur et aura l'effet secondaire de , player.velocity.y = -height
y checkCollisions(player)
. Je n'arrive pas à trouver un test unitaire clair à construire autour de cela.
Les tests unitaires ne sont-ils tout simplement pas viables dans les applications à état élevé comme les jeux ? Les avantages des tests unitaires sont-ils si importants qu'il vaille la peine de programmer les jeux de manière fonctionnelle ?
Mise à jour :
Games from Within propose une série d'articles détaillés sur l'utilisation du développement piloté par les tests dans les jeux. Je les recommande vivement à toute personne intéressée par ce sujet. Voici le premier article :
http://gamesfromwithin.com/stepping-through-the-looking-glass-test-driven-game-development-part-1
0 votes
Pour UnitTest++, allez sur github.com/unittest-cpp/unittest-cpp. Tout le reste est obsolète.