내 스택 : Angular.js, Karma, Karma-coverage (Istanbul) 및 Jasmine.각도 코드 적용 범위가 잘못되었습니다.
내가, 내 응용 프로그램 문제, 따라서 질문을 통해 코드 커버리지 분석을 실행 한 것은 내가 얻을 입니다 서비스 및 A (녹색) 실제로 어떤 시험이없는 경우 시험에 의해 덮여로 표시 연결된. 내가 서비스 및 A이 컨트롤러 B에 의해 사용되는 것을 알고
- :
나는 다음과 같은 시나리오를 비난하는 것이라고 생각한다.
- 컨트롤러 B은 테스트의 적용을받으며 코드 적용 결과는 테스트에서 올바르게 표시됩니다.
- 컨트롤러 B을 테스트 할 때 서비스 A이 조롱되지 않았습니다.
내가 서비스 가입일 간접적 컨트롤러 B의 시험에 의해 호출되는 생각, 내가 잘못된 결과를 얻을.
아이디어가 있으십니까? 나는 옳은 것을 의심하고 있나? 이 부분에서 정확한 테스트 커버리지 결과를 얻을 수 있도록 주변에 어떤 방법이 있습니까?
미리 감사드립니다.
당신이 답변을 주셔서 감사합니다 :
다음이 작업 Plunker입니다! 바위를 조롱! 그러나 때로는 의존성이 많은 복잡한 구성 요소를 조롱하는 것이 너무 힘듭니다. 코드 적용 범위 보고서를 평가하고 분석 할 때이를 염두에 두는 것이 좋습니다. – franleplant
위에서 설명한 것처럼 서비스 조롱에 대한 또 다른 접근법은'spyOn() ..callFake()'입니다. 단위 테스트가 테스트하는 코드보다 조금 더 많은 작업을 수행한다는 것을 알았지 만 이는 안정성을 위해 지불 한 가격입니다. –
고마워요! 관심있는 사람들을 위해, 이것은 스파이에 관한 Jasmine의 문서에 대한 링크입니다. http://jasmine.github.io/2.0/introduction.html#section-Spies – franleplant