2017-05-05 5 views
-2

Ich bin mir nicht sicher, wie Sie eine Methode testen können, die Parameter als String akzeptiert und ein Objekt basierend auf diesem Parameter zurückgibt. Ich kann die Methode nicht bereitstellen, da die Anweisungen, die ich erhielt, Blackbox-Tests verwenden sollten. (Methode wurde bereitgestellt.)Java: Unit Testen einer Methode, die ein Objekt zurückgibt

+1

Werfen Sie einen Blick auf JUnit. Erstellen Sie einen JUnit-Testfall, der die Methode mit einer Vielzahl von Eingabedaten ausführt, und überprüft, ob das zurückgegebene Objekt für jeden Eingabesatz korrekt ist. – Jason

+0

Blackbox-Unit-Test? Was heißt das? Können Sie ein Beispiel angeben, das Ihr Problem veranschaulicht? –

+0

@defaultlocale https://en.wikipedia.org/wiki/Black-box_testing – QBrute

Antwort

2

Normalerweise würden Sie sich die verschiedenen Pfade innerhalb dieser Methode ansehen. Dann schreibst du mindestens einen Testfall pro Pfad.

Jeder Test verwendet die Eingabeparameter, die in den entsprechenden Pfad münden sollen, und bestätigt etwas über das Ausgabeergebnis, das wiederum den Erwartungen für diesen Pfad entspricht.

Von der Black-Box-Seite kommend, können Sie dies auf ähnliche Weise tun: aber hier konzentrieren Sie sich auf den öffentlichen Auftrag der Methode, um die erforderlichen Tests zu bestimmen.

Und idealerweise tun Sie zuerst Black-Box, und später können Sie die Abdeckung messen, um sicherzustellen, dass Ihre Testmethode keine Aspekte enthält, die durch den Black-Box-Ansatz übersehen werden. Oder zu finden: Mein Vertrag ist vollständig getestet; aber ich benutze immer noch nur 80% des Codes in dieser Methode. Jetzt müssen Sie entscheiden: Ist Ihr Verständnis des Vertrags unvollständig? Oder enthält die Methode 20% Code, der gelöscht werden sollte ?! Mit anderen Worten: Das ist eher eine gedankliche Sache: Möchten Sie sich darauf konzentrieren, dass alle möglichen Pfade mindestens einmal getestet wurden, anstatt zu testen, ob der öffentliche Auftrag wie erwartet funktioniert (was die Verfügbarkeit eines Formulars erfordert) der Spezifikation!).

Verwandte Themen