2013-06-18 2 views
1

저는 간단한 AngularJS 프로젝트에 대한 테스트를 작성하고 이스탄불을 사용하여 코드 커버리지를 테스트합니다. 나는 이스탄불에 따라 100 %의 코드 커버리지를 가진 파일을 가지고,하지만 난 그것을 위해 어떤 시험이없는 이스탄불에서경로 코드 커버리지는 아무 테스트없이 100 %입니다

'use strict'; 

define(['app'],function(app) { 
    app.config(['$routeProvider',function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainController' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }]); 
}); 

스탯은 다음과 같습니다

Statements: 100% (4/4)  
Branches: 100% (0/0)  
Functions: 100% (2/2)  
Lines: 100% (4/4)  

전체를 HTML 보고서 페이지는 "녹색"이며 코드 적용 범위가 양호 함을 나타냅니다.

왜 이렇게 될까요? 그것에 대해 할 일이 있습니까? (이스탄불에서는 문제입니까?)

+0

[OT] : 지금 당장 이스탄불에서 문제가 * 주어진다는 다소 어색한 질문입니다. – icedwater

답변

3

코드 커버 리지는 JavaScript 실행이 해당 라인에 도달했는지 여부를 보여 주며 특별히 테스트가 할당되어 있지 않은 경우에만 표시됩니다.

대개 Angular는 테스트를 실행하는 동안 라우트 구성을 읽습니다. 따라서 파일의 모든 내용이 덮여 쓰여짐으로 표시됩니다.

100 % 코드 범위가 자동으로 100 % 기능 범위를 의미하지는 않는다는 것을 상기시켜줍니다.

+0

마지막 부분을 굵게하고 싶을 수도 있습니다 ... 충분한 시간이라고 말할 수는 없습니다. – finishingmove

+0

하지만 100 %는 테스트하지 않은 코드를 가지고 있다는 것을 의미하며 지속적으로 측정하는 경우 테스트 범위를 줄이면 테스트를 추가하지 않고 기능이 구현되었음을 나타냅니다. –

+1

@TobiasLangner 네, 분명히 사실입니다. * 반대는 사실이 아닙니다 : 50 % 코드 커버리지가있는 경우 중복 코드가 많지 않은 한 100 % 기능 커버리지를 가질 수 없습니다. 코드 적용 범위가 100 %라면 기능 적용 범위가 50 % 밖에되지 않을 가능성이 매우 높습니다. – JJJ