2017-12-05 6 views
0
에 대한 코드 커버리지

명도 ngSwitch각도 - 뷰

그러나 내가 어떤 툴을 보지 못했다 덜 자주 *ngIf="whatever_condition"를 많이 사용하고 있습니다 (... 2,4,5) 각도와 응용 프로그램을 개발하는 동안 그 그 코드의 실제 양이 얼마나 많은지에 대한 정보를 제공 할 수 있습니다.

분명히 Typescript 파일에는 해당 범위를 얻기위한 istanbul 로더가 있지만 분명히 높은 범위를 갖는 잘못된 그림을 제공합니다. 논리의 큰 덩어리는 아무런 측정도없는 관점에있다. 내가 Typescript에 90 %의 지점 커버리지를 가지고 있지만 여전히 뷰에 2 배의 분기가 있다면 실제 범위는 45 %에서 90 % 사이 일 것입니다.

각도보기의 코드 범위를 측정하고 의미있는 방식으로 표시 할 수있는 도구가 있습니까?

+0

([Webstorm는 코드 커버리지를 가지고] https://www.jetbrains.com/help/webstorm/code 도움이되기를 바랍니다 대신

를 필요한 경우 고려 -coverage.html) 그러나 나는 그것을 사용하지 않았다. – lloyd

+0

나는 이것이 얼마나 도움이되는지 정말로 모르겠다. 각도 템플릿은 자바 스크립트로 컴파일되어 있으며, 실행되는 템플릿과 템플릿 자체 사이에는 아무런 연관이 없다. 내가 틀리면 않는 한, 그것을 구성하는 방법을 알아야한다. – kubal5003

+0

'* ngIf = "whatever_condition"'에서 로직이 얼마나 복잡합니까? [karma의 코드 커버리지] (https://stackoverflow.com/questions/44463706/code-coverage-for-angular-2)는 일반적으로 로직이있는 파일을 고려합니다. [코드 냄새가납니다.] (http://daginge.com/technology/2013/12/14/testing-angular-templates-with-jasmine-and-karma/) 컨트롤러에 whatever_condition을 놓을 것을 고려해야합니다 보기를 테스트 할 필요가 없습니다. – lloyd

답변

0

템플릿에 대해 조사하지는 않았지만 component- vs unittest를 살펴 보았습니다.

it('',()=>{ 
    component.whatever_condition = true; 
    const el = fixture.debugElement.query(By.css('someElement')); 

    fixture.detectChanges(); 

    expect(el).toBeDefined(); 
}); 

것은 나는이 당신에게 보험을 제공하지 않습니다 실현,하지만 템플릿에 대한 테스트를 제공합니다

나는 보통 다음을 수행합니다.

NB는 E2E 테스트 당신은 내가 그것을

+0

미안하지만 문제는 커버리지에 관한 것이었다. 측정 및보기를 테스트하지. 나는 당신이 제안한 것과 정확히 일치하는 '각도 방법'을 테스트하고 있지만, 문제는 내가 무엇을 테스트하고 무엇을 도구를 보느냐만으로는 알 수 없다는 것입니다. 나는 또한 코드 커버리지가 실제로 케이스 커버리지가 아니라는 것을 알고있다. 그러나 그것은 다른 토론이다. – kubal5003

+0

나에게 그것은 당신이 당신의 책임이 아닌 것을 테스트하기를 원하는 것처럼 보인다. 모델 바인딩을 통해 데이터를 기반으로 뷰를 업데이트하는 것은 Angular와 동일하므로 테스트 범위를 벗어납니다. 프레임 워크가 예상 한대로 작동한다고 가정하는 것은 좋습니다. – methgaard

+0

Angular가 올바르게 작동하는지 테스트하지 않습니다 .. 내가 말한 것을 의역 할 때 - Typescript로 작성한 테스트 조건은 Typescript가 올바르게 실행될 수 있기 때문에 제 책임이 아닙니다. 내 요점 : – kubal5003