Wir testen unseren Code, um ihn korrekter zu machen (tatsächlich ist es weniger wahrscheinlich, dass er falsch ist ). Die Tests sind jedoch auch Code - sie können auch Fehler enthalten. Und wenn Ihre Tests fehlerhaft sind, verbessern sie Ihren Code kaum.
Ich kann mir drei mögliche Arten von Fehlern in Tests vorstellen:
Logische Fehler, wenn der Programmierer die vorliegende Aufgabe missverstanden hat und die Tests das tun, was er für richtig hielt, was falsch ist.
Fehler im zugrunde liegenden Testframework (z. B. eine undichte spöttische Abstraktion);
Fehler in den Tests: Der Test macht etwas anders als der Programmierer denkt, dass es ist.
Es scheint unmöglich zu sein, Fehler vom Typ (1) zu verhindern (es sei denn, der Programmierer wird nur ... schlauer). (2) und (3) können jedoch handhabbar sein. Wie gehen Sie mit solchen Fehlern um? Haben Sie spezielle Strategien, um sie zu vermeiden? Schreiben Sie zum Beispiel einige spezielle "leere" Tests, die nur die Voraussetzungen des Testautors überprüfen? Wie gehen Sie beim Debuggen eines fehlerhaften Testfalls vor?