Ich versuche herauszufinden, wie man am besten einen Testfall für eine Klassenübung implementiert. Meine Klassenübung liefert den bekannten Fehler und damit sollte ich einen Testfall schreiben, damit dieser fehlschlägt und somit den Fehler findet. Es beinhaltete den Dijkstra-Algorithmus.
Dies ist die korrekte Version des bereitgestellten Codes:
%Vor%Der bekannte Fehler in einer separaten Version ist wie folgt:
%Vor%und hier ist der JUnit-Testfall, den ich verwende, um ihn zu finden. Ich versuche, mit Java Reflection auf diese Methode zuzugreifen und dann zu versuchen, festzustellen, ob der zurückgegebene Knoten gleich dem Knoten ist, der tatsächlich die größere Entfernung ist.
Hier ist mein Testfall:
%Vor%Wenn ich den Test ausführe, scheint es nichts zu tun, da ich keine Ausgabe bekomme. Ich habe das Gefühl, dass ich dies überbewerte. Gibt es einen einfacheren Weg, diesen Bug ohne Java-Reflektion zu finden?
Da Sie dies mit junit markiert haben, antworte ich in Form von Sachleistungen . Sie sollten private Testmethoden nicht testen, Sie sollten die öffentliche (oder geschützte) Methode testen, die die private Methode verwendet. Also:
%Vor% (Puristen werden mich wahrscheinlich dafür schlagen, aber wenn ich an altem Code arbeite, ändere ich routinemäßig private
Methoden in protected
, um vor dem Refactoring eine einfache Einheitentestabdeckung zu ermöglichen, so dass die - unpraktische - Idee hiermit an dich weitergegeben wird ).
Prost,
Tags und Links java reflection bash junit dijkstra