2017-09-07 3 views
0

단위 테스트를 작성하는 각도 서비스가 있으며 테스트 할 방법 중 하나는 테스트 전 BeforeEach에서 조롱하고 주입하는 외부 종속성의 모듈 변수를 사용합니다 실행됩니다. 이 변수는 표준 배열 또는 JSON 중 하나이며 원래 함수에서는 서비스 종속성 메소드의 출력을 기반으로 액세스됩니다.모킹 서비스 모듈 각도 단위 테스트의 변수 종속성

저는 jasmine createSpy와 callFake를 사용하여 메소드를 조롱했습니다. 그리고 같은 방법으로이 변수의 값을 조롱했는데 결과는 undefined로 돌아오고 결과는 실패합니다.

이러한 변수의 값을 조롱하는 가장 좋은 방법은 무엇입니까?

var module = { 
    variableOne= [ a, b , c]; 
    variableTwo = {1, 2, 3}; 
}; 

을하고 내가 테스트 오전 서비스 방법은 예에 의해 그들을 호출 :

변수

는 다음과 같은 예를 들어 정의 된이 서비스를 주입하여 테스트에서

DependentService.variableOne[outputOfMockedDependencyMethod]; 

답변

1

을, , 당신은 그것을 바꿀 수 있습니다 :

it(
    'your desc', 
    inject([YourService], (service: YourService) => { 
    service.mockedValue = {/* all you want */}; 
    })); 
+0

내가 테스트 중이거나 dependenc y 서비스? Atm 내 이전의 내부에 종속성에 대한 별도의 주입이 있습니다. 테스트 할 서비스의 경우 변수가 외부 종속성에서 오는 것이 중요합니까? – bardsleyta

+0

서비스 부서 테스트에 도움을 요청했습니다. 그리고 당신이 이전에 그것을한다면, 당신은 내가 여기에 보여주는 것과 똑같은 일을 할 수 있습니다! 나는 보통 테스트 케이스에서 그것을 직접하는 경향이있다. 왜냐하면 나는 보통 (내 모든 결과를 테스트하기 위해) 내 서비스에 여러 mock을 제공하기 때문이다. – trichetriche

+1

Ok. 감사. 나는 그럭저럭 그것을 일하게 할 수 있었다 :) – bardsleyta