2 Stimmen

Auf welcher Ebene sollte ich Modultests durchführen?

Angenommen, in meinem Benutzermodell habe ich eine ChangePassword-Methode. Bei einem bereits initialisierten Benutzermodell nimmt es das neue Passwort als Parameter und führt die Datenbankarbeit durch, um das Zauberwerk zu bewirken. Die Benutzeroberfläche dafür ist ein Webformular, in dem der Benutzer sein aktuelles Passwort und sein gewünschtes neues Passwort eingibt. Der Controller überprüft dann, ob das aktuelle Passwort des Benutzers korrekt ist. Wenn ja, ruft er die ChangePassword-Methode des Benutzermodells auf. Wenn nicht, zeigt er dem Benutzer einen Fehler an.

Von dem, was ich höre, soll man das kleinste mögliche Stück Code testen, aber in diesem Fall wird dadurch vollständig ignoriert, zu prüfen, ob der Benutzer das korrekte aktuelle Passwort eingegeben hat. Was soll ich also tun?

Soll ich:

A) Nur vom Controller aus den Unit-Test durchführen und damit auch die Modellfunktion testen?

ODER

B) 2 verschiedene Tests erstellen; einen für den Controller und einen für das Modell?

0voto

Oliver Friedrich Punkte 8805

Unit-Tests bedeuten, jede Einheit einzeln zu testen, daher müssten in diesem Fall zwei Unit-Tests erstellt werden, einer für die Frontend- und einer für die Backend-Entwicklung.

Um die Kombination beider zu testen, wird ein Integrationstest benötigt, zumindest nennt es das ITSQB so.

Wenn Sie objektorientiert codieren, erstellen Sie in der Regel Unit-Tests für jede Klasse, da dies die kleinste unabhängige testbare Einheit ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X