2017-05-04 1 views
-1

Pourquoi est-ce que, Si seulement le test unitaire de la fonction B est effectué alors la couverture de la fonction A est de 50%. Même si nous prenons les valeurs de la fonction B comme (1,2,3) il couvrirait le cas échéant de la première fonction, mais pourquoi la couverture sera toujours de 50%?Couverture de code du code donné

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

L'analyse de code statique ne peut pas traverser des blocs sémantiques. C'est l'outil ne peut pas détecter les chemins de code à travers 'A' de' B'. –

+0

Et si nous faisons la couverture de code sur papier? comme la course à sec. – Arslan

+0

qu'est-ce que cela a à voir avec C# ou C++? – CodingNinja

Répondre

0

Vous devez faire quelque chose de mal. Cela montre 100% de couverture pour moi. Voici le test (L'objectif est de ne pas montrer que ce soit un bon test ou non, mais pour répondre à votre question):

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

    Assert.IsTrue(true); 
} 

et est le résultat de la couverture ici de ce test:

enter image description here enter image description here