MSTest zeigt partielle Codeabdeckung bei zusammengesetzten booleschen Ausdrücken

9

Aus der Dokumentation von Microsoft ist teilweise abgedeckter Code "... wo einige der Code-Blöcke innerhalb der Zeile nicht ausgeführt wurden." Ich bin ziemlich ratlos bei diesem (vereinfacht für die Kürze):

Gegeben diese Methode:

%Vor%

Und dieser Test:

%Vor%

Code Coverage Ergebnisse zeigen, dass der Ausdruck x.StartsWith("t") && x == "test2 nur teilweise abgedeckt ist. Ich bin mir nicht sicher, wie das möglich ist, es sei denn, der Compiler oder CLR hat eine Art von begierigem Zustand, der mit den Dingen übereinstimmt, aber vielleicht muss ich es nur erklären lassen.

    
lukiffer 18.10.2012, 05:08
quelle

1 Antwort

10

Der Conditional-AND-Operator (& amp; & amp; & amp;) führt ein logisches UND seiner Bool-Operanden durch, wertet jedoch nur seinen zweiten Operanden aus, falls erforderlich.

Ссылка

Sie würden also erwarten, dass beide Seiten behandelt werden

Vielleicht beschweren Sie sich darüber, dass Sie die Pfade -ve nicht getestet haben, d. h. wenn Ihre Sammlung

ist %Vor%

Auf diese Weise testen Sie, ob x.StartsWith("t") T / F ist, weil derzeit nur der T-Pfad für diese Bedingung getestet wird.

    
Shaun Wilde 18.10.2012, 23:50
quelle