2015-02-04 6 views
0

내부 함수가있는 함수를 가지고 있습니다. 내부 함수가 호출 될 때 필요한 함수입니다. try를 사용하여 spyOn의 예제를 찾고 있지만 찾지 못했습니다.재스민을 사용하여 함수 내부에서 함수 테스트

function OutterFunc(){ 
    function InnerFunc(){ 
     return "A"; 
    } 
    var b = InnerFunc(); 
    return b; 
} 

내가 할 수하고자하는 시험처럼 InnerFunc가 라고되어있다 우리가 테스트하려는 코드 메신저가되어 어떤 도움이 정말

+0

내부 기능을 외부 기능 밖으로 옮길 수 없습니까? 지역 변수를 닫으면 인수로 전달할 수 있습니다. 일단 함수가 '외부 세계'에 액세스 할 수있게되면 'spyOn'을 사용할 수 있어야합니다. 맞습니까? –

답변

1

흠, 내가 어떤 식 으로든 표시되지 않습니다 환영 정말 것 내부 함수가 호출되었는지 여부를 테스트하는 분명한 방법. 위의 예제에서는, "A"의 리턴 값을 얻는다고해서 함수가 호출되었다는 사실을 알 수 있습니다.

특정 방법으로 함수가 호출되었는지 테스트하는 경우 특정 조건에서 코드를 리팩토링해야합니다. 위의 설명에서와 같이 다른 함수에서 내부 함수를 이동할 수 있습니다. 그래서 다음과 같이 호출 다음

var inner = function(){ 
    return 'A'; 
} 

function OuterFunc(fn) { 
    return fn(); 
} 

을 그리고 :

var res = OuterFunc(inner); 

를 이제 내부 감시 할 수 있습니다 당신과 같이 외부 하나에 내부 함수를 전달할 수 있습니다. 다른 가능성이 있지만 내부 기능을 테스트하려면 리팩터링을해야합니다.

+0

내가 생각한 것 그러나 나는 질문에 감사해야만했다. – TechLiam

+0

괜찮 으면, 질문에 답을 표시 할 수 있겠는가 :-) –

+0

나는 또 다른 사람이 이걸 어떻게 할 것인지를 기대했지만 너의 길은 내가 그렇게 할 수있는 유일한 길이라고 생각해. – TechLiam