2017-05-04 8 views
-1

Warum ist das so, Wenn nur Unit Testing für Funktion B durchgeführt wird, dann ist die Abdeckung der Funktion A 50%. Auch wenn wir die Werte von Funktion B als (1,2,3) nehmen, würde es die Funktion if und else of first abdecken, aber warum ist die Abdeckung immer noch 50%?Codeabdeckung des angegebenen Codes

Public int A(int a,int b) 
{ 
if (a%2==0) 
     return a; 
else 
    return b; 
} 


Public int B (int a,int b,int c) 
{ 
int val=A(a,b);  
val=A(val,c); 
    } 
+0

statische Codeanalyse kann semantische Blöcke nicht überschreiten. Das heißt, das Werkzeug kann die Codepfade durch "A" von "B" nicht erkennen. –

+0

Was ist, wenn wir die Codeabdeckung auf Papier machen? wie Trockenlauf. – Arslan

+0

was hat das mit C# oder C++ zu tun? – CodingNinja

Antwort

0

Sie müssen etwas falsch machen. Es zeigt 100% Abdeckung für mich. Hier ist der Test (Ziel nicht zu zeigen, ob dies ein guter Test ist oder nicht, aber Ihre Frage zu beantworten):

[TestMethod] 
public void SomeTest() 
{ 
    ClassLibrary1.Class1 csl = new ClassLibrary1.Class1(); 
    csl.B(1, 2, 3); 

    Assert.IsTrue(true); 
} 

Und hier ist die Abdeckung Ergebnis dieses Tests:

enter image description here enter image description here