Zunächst benötigen Sie ein Unit-Testing-Framework. In der Vergangenheit habe ich UnitTest ++ und Google Test verwendet . Ersteres ist sehr leicht und letzteres ist mehr ausgestattet, aber etwas umständlicher. Es lässt sich gut in Google Mock integrieren, falls Sie so etwas jemals brauchen sollten. Es gibt natürlich viele andere Möglichkeiten: siehe diese Liste (vom eventuellen Autor von UnitTest ++) und Wikipedia zum Beispiel.
Beim Unit-Testen geht es darum, fokussierte Tests zu schreiben, um bestimmte isolierte unabhängige Codebits ("Units") unter verschiedenen Szenarien hervorzuheben. In einigen Fällen können Sie alles Unit-testen. In der Regel ist es jedoch nicht praktisch, eine 100-prozentige Abdeckung zu erzielen. Insbesondere in Spielen kann dies recht schwierig sein. Es ist fraglich, ob Unit-Tests Ihrer Renderer-Ausgabe in irgendeiner Weise sinnvoll, nützlich oder sinnvoll sind ein "wahrer" Komponententest, egal.
Es ist wichtig, sich daran zu erinnern, dass jedes (automatisierte) Testen besser ist als kein (automatisiertes) Testen. Sie sollten also nicht zu viel Wert darauf legen, dass Ihre Tests keine "echten Komponententests" sind, und stolz darauf sein, dass Sie nur Tests haben. Unit-Test-Frameworks sind in der Regel nützlich, um lockerere, "nicht-Unit" -Tests zu erstellen, da sie Funktionen für Verpackungstests und die einheitliche Meldung von Fehlern enthalten.
Ich würde Sie ermutigen, Ihre alten Tests erneut zu beleben und sie mit einem der verfügbaren Frameworks in ein Testprojekt zu integrieren - etwas, das Sie von Zeit zu Zeit (oder automatisch als Teil eines Release- oder Integrationsbuilds) problemlos ausführen können, das alle ausführt Ihre Tests. Schreiben Sie neue Tests für Code-Teile, wenn sich herausstellt, dass diese für Sie nützlich sind. Wenn Sie beispielsweise einen subtilen Fehler entdecken, den Sie mit einem Test hätten entdecken können, können Sie einen hinzufügen, um eventuelle zukünftige Regressionen zu erfassen.
Sie werden wahrscheinlich feststellen, dass es hauptsächlich Ihr niedrigerer Utility-Code ist, der für Unit-Tests in Spielen geeignet ist. Das ist in Ordnung - das ist Foundation Code, der viele höhere Ebenen stören kann, wenn er kaputt geht.
Sie werden nicht zum Fegefeuer des Programmierers gehen, weil Sie keine Tests für jede kleine Funktion und jedes logische Gatter in Ihrer Codebasis haben. Nehmen Sie sich also nicht mehr Zeit, als Sie für das Schreiben von Tests benötigen. Wenn Sie überlegen müssen oder wesentlich mehr Zeit mit dem Schreiben der Tests für ein Modul verbringen, als Sie zum Erstellen des Moduls benötigt haben, verschwenden Sie möglicherweise Ihre Zeit. Unit Testing - Testen im Allgemeinen - ist ein Werkzeug, mit dem Sie lernen, wie Sie es angemessen einsetzen, um Ihnen zu helfen, und keine Arbeit, die Sie für alles ausführen müssen.