2013-09-08 2 views
0

저는 단위 테스트 인 jasmine을 처음 사용했습니다. 함수 내부에서 개인 메소드를 테스트 할 수 있는지 궁금합니다. 여기에 내가함수 내부의 개인 메소드 (var) 테스트

function thisIsTheFunction(...) { 
    //Some Code 

    var thisIsTheMethod = function() { 
     //This Should be tested 
    } 

    //Someother Code 
} 

내가이 this에 연결되어있는 경우, 우리는 thisIsTheFunction을 테스트 할 수 있다는 것을 알고를 할 노력하고있어의 코드입니다. 그러나 메소드가 비공개인지 테스트 할 수있는 방법이 있습니까?

미리 감사드립니다.

답변

1

thisIsTheFunction 범위 밖의 thisIsTheMethod에 대한 액세스 권한이 없습니다.

또한 개인 방법을 테스트해서는 안됩니다.

목표를 달성하는 데 도움이되도록 실제 코드 예제를 보여주십시오.

0

이 코드에서 실제 로직을 테스트하려면이 메소드를 별도의 "공용"함수로 분리하여 자체 단위로 테스트해야합니다. (만약 당신이 논리를 테스트하기를 원한다면, 외부 함수의 테스트 동안 내부 함수가 단위 테스트가 아니라 통합 테스트가되어야 함).

그러나 외부의 동작을 테스트하려면 함수를 호출 할 때 호출자가 thisTheMethod 구현을위한 콜백을 thisTheFunction의 "생성자"에 대한 매개 변수로 전달할 수 있도록하는 것이 하나의 방법입니다.

이는 등, thisIstheFunction가 돼있 때 thisIsTheMethod를 호출 않는 측면에서 작동하는 방식을 테스트 할 수 있도록 당신이 테스트 함수 내에서 정의 콜백을 "주입"

수 있습니다