2017-05-04 8 views
-1

이유는 무엇입니까? 함수 B에 대한 단위 테스트 만 수행하면 함수 A의 적용 범위는 50 %입니다. 함수 B의 값을 (1,2,3) 으로 취하더라도 첫 번째 함수의 if와 else를 포함하지만 커버리지가 여전히 50 %가되는 이유는 무엇입니까?주어진 코드의 코드 범위

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

정적 코드 분석은 의미 블록을 통과 할 수 없습니다. 즉, 도구는 'B'에서 'A'를 통해 코드 경로를 감지 할 수 없습니다. –

+0

우리가 종이에 코드 커버리지를 적용한다면 어떨까요? 드라이 런처럼. – Arslan

+0

이것은 C# 또는 C++과 어떤 관련이 있습니까? – CodingNinja

답변

0

뭔가 잘못하고 있어야합니다. 그것은 나에게 100 % 적용 범위를 보여줍니다. 그 테스트 커버리지 결과 여기

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

    Assert.IsTrue(true); 
} 

을 그리고있다 :

enter image description here enter image description here 다음은 테스트 (목적이 당신의 질문에 대답하지만, 좋은 테스트인지 여부를 표시하지 않는 것입니다)입니다