Immer wenn ich einen bestimmten Code-Pfad ausführen möchte, der sonst nur unter einem schwer reproduzierbaren condition
like:
I or
it mit true
value:
Gibt es einen eleganteren Ansatz?
Ich denke, mehr elegant way
verwendet the logical negation operator (!)
als;
Aber sicherer Weg zu Debugging- oder Testzwecken Sie können eine Präprozessordirektive verwenden (wie in meinem commet). Wenn Sie mit dem Testen fertig sind, entfernen oder ändern Sie #define UnreachableTest
Eine elegantere Lösung sind Mocks. Treffen Sie Entscheidungen basierend auf Abhängigkeiten oder Parametern:
%Vor%Und in Ihrem System unter Test:
%Vor%Ihr Ansatz mit "wahr oder" und der Ansatz von if (! Bedingung) sind die einfachsten. Hier ist ein Ansatz, den ich für große Programme mag
Erstelle eine Funktion, nennen wir sie testme (const string). Anstatt true in if test einzufügen, fügen Sie testme mit einer Zeichenfolge ein, die diesen Codeabschnitt identifiziert.
%Vor%Dann können Sie mit irgendeiner Art von Konfigurationsdatei oder Argumenten zu Ihrem Programm (ich bevorzuge Konfiguration), vollständig kontrollieren, wenn testme ("Standort 123") wahr zurückgibt. UND Sie können die gleiche Funktion an vielen Orten verwenden. Ändern Sie einfach die Konfigurationsdatei, um jeden zu testen.
Ich nehme an, das ist kein Unit-Test-Szenario, da es in der Frage nicht erwähnt wurde. Der einfachste Weg, um Code wie diesen on-the-fly zu testen, ist die Verwendung des Befehls Set Next Statement des Debuggers.
Legen Sie bei Bedarf einen Haltepunkt für die if () -Anweisung fest, oder schieben Sie den Code schrittweise, bis er diese Anweisung erreicht. Klicken Sie dann mit der rechten Maustaste auf die nächste Zeile im if () - Anweisungshauptteil und wählen Sie "Nächste Anweisung festlegen". Der Code setzt die Ausführung in dieser Zeile fort und überspringt das if () vollständig.
Geben Sie den zu testenden Code in einer separaten Methode ein. Dann können Sie die Methode aufrufen und die Bedingung umgehen. Jetzt müssen Sie sich nicht mehr darum kümmern, "wahr" hinzuzufügen oder, was noch wichtiger ist, zu vergessen, es zu entfernen.
Sie können auch Komponententests für die Methode hinzufügen, damit Sie die übergebenen Parameter ändern und alle gewünschten Szenarien testen können.
Tags und Links c#