2016-09-16 7 views
1

에 함수를 호출하는 전화를 받고 코드 커버리지가 그 라인을 커버하지 못합니다. 아래의 테스트 케이스는 정상적으로 작동하지만 마지막 줄의 코드 만 포함하고 창로드에서 함수를 초기화합니다.테스트 케이스 내 JS 코드가 아래에 언급 Document.ready

test("initialize test", 1, function() { 
    var result = IPL.Register.Print.initialize(); 
    equal(undefined, result, "passed"); 
}); 

문서로드시 함수를 실행하기 위해 테스트 케이스를 작성하는 방법을 알려주십시오.

+0

어떤 종류의 테스트를 원하십니까? 단위 테스트는 document.ready 이벤트에 의존해서는 안됩니다. e2e 테스트를 원하면 [셀레늄] (http://www.seleniumhq.org/)과 같은 것을 시도해보십시오. – Anticom

+0

코드 커버리지 비율을 향상시키고 싶습니다. – Raj

답변

0

이렇게하는 가장 좋은 방법은로드 이벤트를 전혀 테스트하지 않는 것입니다. 이벤트 처리기를 명명 된 함수에 넣은 다음 해당 함수의 동작을 테스트하면됩니다.

/// <summary>Declare Namespace IPL.Register.Print</summary> 
IPL.Register.Print = { 
    /// <summary>Function to call on initialize page.</summary> 
    initialize: function() { 
    window.onload = function() { 
     window.print(); 
    }; 
    }, 
    print: function() { 
    window.print(); 
    } 
}; 

test("initialize test", 1, function() { 
    var result = IPL.Register.Print.print(); 
    equal(undefined, result, "passed"); 
}); 

http://jsfiddle.net/Tintin37/vpqjsr8L/

는 부하 이벤트가 당신의 기능을 실행하면로드 이벤트를 테스트하여 달성 구체적으로 무엇을 원하는가?