Dies beantwortet, warum Sie Unit-Tests durchführen sollten.
Die folgenden 3 Videos behandeln Unit-Tests in Javascript, aber die allgemeinen Prinzipien gelten für die meisten Sprachen.
Unit Testing: Minuten sparen jetzt Stunden später - Eric Mann - https://www.youtube.com/watch?v=_UmmaPe8Bzc
JS Unit Testing (sehr gut) - https://www.youtube.com/watch?v=-IYqgx8JxlU
Schreiben von testbarem JavaScript - https://www.youtube.com/watch?v=OzjogCFO4Zo
Jetzt lerne ich nur etwas über das Thema, daher bin ich möglicherweise nicht 100% korrekt und es steckt mehr dahinter als das, was ich hier beschreibe, aber mein grundlegendes Verständnis von Unit-Tests besteht darin, dass Sie einen Testcode schreiben (der von Ihrem getrennt gehalten wird) Hauptcode), der eine Funktion in Ihrem Hauptcode mit Eingaben (Argumenten) aufruft, die die Funktion benötigt, und der Code dann prüft, ob er einen gültigen Rückgabewert zurückerhält. Wenn ein gültiger Wert zurückgegeben wird, zeigt das Unit-Test-Framework, mit dem Sie die Tests ausführen, grünes Licht an (alles in Ordnung). Wenn der Wert ungültig ist, erhalten Sie ein rotes Licht und können das Problem sofort vor Ihnen beheben Geben Sie den neuen Code für die Produktion frei. Ohne Tests haben Sie den Fehler möglicherweise nicht erkannt.
Sie schreiben also Tests für Ihren aktuellen Code und erstellen den Code so, dass er den Test besteht. Monate später müssen Sie oder eine andere Person die Funktion in Ihrem Hauptcode ändern, da Sie zuvor bereits Testcode für diese Funktion geschrieben haben, den Sie jetzt erneut ausführen und der Test möglicherweise fehlschlägt, weil der Codierer einen logischen Fehler in die Funktion eingeführt oder etwas vollständig zurückgegeben hat anders als das, was diese Funktion zurückgeben soll. Ohne den Test ist dieser Fehler möglicherweise schwer zu finden, da er möglicherweise auch anderen Code betrifft und unbemerkt bleibt.
Auch die Tatsache, dass Sie ein Computerprogramm haben, das Ihren Code durchläuft und testet, anstatt ihn Seite für Seite manuell im Browser auszuführen, spart Zeit (Unit-Test auf Javascript). Angenommen, Sie ändern eine Funktion, die von einem Skript auf einer Webseite verwendet wird, und sie funktioniert gut und gut für den neuen Verwendungszweck. Nehmen wir aber auch aus Gründen der Argumentation an, dass es eine andere Funktion in Ihrem Code gibt, die von dieser neu geänderten Funktion abhängt, damit sie ordnungsgemäß funktioniert. Diese abhängige Funktion funktioniert möglicherweise aufgrund der Änderungen, die Sie an der ersten Funktion vorgenommen haben, nicht mehr. Ohne Tests, die automatisch von Ihrem Computer ausgeführt werden, werden Sie jedoch erst feststellen, dass ein Problem mit dieser Funktion vorliegt, wenn sie tatsächlich ausgeführt wird und Sie'
Um es noch einmal zu wiederholen: Wenn Tests während der Entwicklung Ihrer Anwendung ausgeführt werden, treten diese Probleme beim Codieren auf. Wenn die Tests nicht vorhanden sind, müssen Sie Ihre gesamte Anwendung manuell durchgehen. Selbst dann kann es schwierig sein, den Fehler zu erkennen. Naiv senden Sie ihn in die Produktion und nach einer Weile sendet Ihnen ein freundlicher Benutzer einen Fehlerbericht (der wird nicht so gut sein wie Ihre Fehlermeldungen in einem Testframework).
Es ist ziemlich verwirrend, wenn Sie zum ersten Mal von dem Thema hören und sich denken, teste ich meinen Code nicht bereits? Und der Code, den Sie geschrieben haben, funktioniert so, wie es eigentlich sein soll: "Warum brauche ich ein anderes Framework?" ... Ja, Sie testen Ihren Code bereits, aber ein Computer kann das besser. Sie müssen nur einmal gut genug Tests für eine Funktion / Codeeinheit schreiben, und der Rest wird von der mächtigen CPU für Sie erledigt, anstatt manuell zu überprüfen, ob Ihr gesamter Code noch funktioniert, wenn Sie eine Änderung an vornehmen dein Code.
Außerdem müssen Sie Ihren Code nicht einem Komponententest unterziehen, wenn Sie dies nicht möchten. Dies zahlt sich jedoch aus, wenn Ihre Projekt- / Codebasis mit zunehmender Wahrscheinlichkeit, Fehler einzuführen, größer wird.