Es gibt zwar Möglichkeiten, die Ausführung von Komponententests zu verhindern, aber welchen Wert hat die Überprüfung fehlgeschlagener Komponententests?
Ich werde ein einfaches Beispiel verwenden: Groß- und Kleinschreibung. Der aktuelle Code unterscheidet zwischen Groß- und Kleinschreibung. Eine gültige Eingabe in die Methode ist "Cat" und würde eine Enumeration von Animal.Cat zurückgeben. Die gewünschte Funktionalität der Methode sollte jedoch nicht zwischen Groß- und Kleinschreibung unterscheiden. Wenn also die beschriebene Methode "cat" bestanden würde, könnte sie möglicherweise so etwas wie Animal.Null anstelle von Animal.Cat zurückgeben, und der Unit-Test würde fehlschlagen. Zwar würde eine einfache Codeänderung dazu führen, dass dies funktioniert, ein komplexeres Problem kann jedoch Wochen dauern, aber die Identifizierung des Fehlers mit einem Komponententest könnte eine weniger komplexe Aufgabe sein.
Die Anwendung, die derzeit analysiert wird, verfügt über 4 Jahre Code, der "funktioniert". Jüngste Diskussionen zu Komponententests haben jedoch Mängel im Code ergeben. Einige benötigen lediglich eine explizite Implementierungsdokumentation (z. B. Groß- / Kleinschreibung beachten oder nicht beachten) oder Code, der den Fehler basierend auf dem aktuellen Aufruf nicht ausführt. Es können jedoch Komponententests erstellt werden, die bestimmte Szenarien ausführen, in denen der Fehler angezeigt wird und gültige Eingaben sind.
Welchen Wert hat das Einchecken von Komponententests, die den Fehler beheben, bis jemand den Code korrigieren kann?
Sollte dieser Komponententest mit Ignorieren, Priorität, Kategorie usw. gekennzeichnet werden, um zu bestimmen, ob ein Build auf der Grundlage der ausgeführten Tests erfolgreich war? Schließlich sollte der Komponententest erstellt werden, um den Code auszuführen, sobald er behoben wurde.
Einerseits zeigt es, dass identifizierte Fehler nicht behoben wurden. Auf der anderen Seite könnten Hunderte von fehlgeschlagenen Komponententests in den Protokollen auftauchen und diejenigen aussortieren, die aufgrund eines Code-Check-ins fehlschlagen oder ausfallen sollten.