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.
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.
Tags und Links c# unit-testing code-coverage mstest