2016-03-30 7 views
2

existiert Ich habe meine Tests automatisiert durch Auswahl aus einer Datenbank die folgenden Informationen lesen:Unit-Tests: Was passiert, wenn die Methode/Funktion Test nicht

  • der Name der Methode
  • getestet werden
  • die Eingangsdaten für die Methode
  • das erwartete Ergebnis

für jede Zeile aus der Datenbank abgerufen, ein Testverfahren ist die Reflexion erstellt werden.

Bisher habe ich vor dem Erstellen der Testmethode überprüft, ob die zu testende Methode existiert. Ist dies nicht der Fall, wird die Testmethode nicht erstellt.

Aber ich würde gerne Informationen über die Methoden geben, die noch geschrieben werden müssen. In gewisser Hinsicht sind das Methoden, die ihre Tests nicht bestehen. Also, welche Art von Fehler oder Warnung sollte in diesen Tests ausgelöst oder ausgegeben werden?


P. S: Ich bin mit PyUnit zur Zeit, die zu JUnit sehr ähnlich ist, aber meine Frage ist in jedem Rahmen nicht spezifisch.

+1

Wenn Sie schrieb „Methoden, die noch getestet werden müssen“ haben Sie „Methoden, die noch geschrieben werden müssen“ bedeuten? –

+0

@DaveSchweisguth Danke für den Hinweis. –

Antwort

1

Was zu tun ist, wenn ein Test fehlschlägt, hängt davon ab, warum es fehlschlägt.

Der sicherste Standardwert ist die Annahme, dass ein Test fehlgeschlagen ist, weil das Programm einen Fehler aufweist. Das ist am sichersten, weil es jemandem ermöglicht, einen Test zu schreiben, der mit dem geringsten Wissen und Aufwand fehlschlägt, wenn es sollte (was schließlich der Hauptzweck eines Test-Frameworks ist). Daher sollte Ihr Framework standardmäßig fehlschlagen, wenn eine Methode nicht vorhanden ist.

Ein Test kann jedoch fehlschlagen, weil Sie den Test geschrieben, aber noch nicht implementiert haben. (Gut für Sie, Sie tun TDD!) Wenn Sie mehrere Tests schreiben, bevor Sie eine von ihnen implementieren, möchten Sie möglicherweise, dass diese Tests bestanden werden, damit Sie die laufende Arbeit nicht mit Regressionen verwechseln. In der Tat haben einige Frameworks die Möglichkeit, einen Test als laufende Arbeit zu markieren, so dass er nicht fehlschlägt, sondern eine Warnung ausgibt, um Sie daran zu erinnern, Ihre Arbeit zu beenden. So würde ich mit Ihren nicht implementierten Methoden umgehen.

In PyUnit, es sieht aus wie the skip() decorator ist, was Sie wollen:

@unittest.skip('method not implemented yet') 
Verwandte Themen