So habe ich gelernt, dass sich die Zweigabdeckung von der Entscheidungsabdeckung unterscheidet, da die Zweigabdeckung typischerweise auch unbedingte Verzweigungen umfasst, z. Methodenaufrufe, unter Verwendung von throw, break und anderen Schlüsselwörtern in C#. Aber ich frage mich, wird diese Art von Zweig Abdeckung tatsächlich in Code-Analysatoren verwendet? Ich vermute, dass sie die Entscheidungsabdeckung nutzen, um sicherzustellen, dass alle Entscheidungsergebnisse (d. H. Die sich daraus ergebenden Zweige) abgedeckt sind. Ich meine, hat der folgende Code 2 bedingt, aber 5 unbedingte Verzweigungen:Unbedingte Verzweigung und Codeabdeckung
if(A)
B();
C();
D();
E();
else
X();
Und ich glaube, wenn ich einen Test schreiben A nur falsch zu bewerten, die Codeanalysatoren mir sagen wird, dass die Zweigüberdeckung ist 50%. Aber aus der Perspektive der bedingungslosen Zweige wird mehr ausgeführt werden. Ist das richtig?
Das hängt wirklich vom Analysator ab. dotCover identifiziert die Codezeilen, die von den Tests betroffen sind, und kann somit feststellen, ob alle möglichen Codezeilen ausgeführt werden. – drz
@drz: OP fragte nicht nach * line * Abdeckung. Er fragte nach der Abdeckung von Zweigniederlassung und Entscheidung. –