[angular] Angular CLi가 생성 한 “spec.ts”파일은 무엇입니까?

나는 Angular 2 (그리고 Angular는 일반적으로 …)를 처음 사용하고 매우 매력적입니다. Angular CLi 를 사용하여 프로젝트를 생성하고 제공하고 있습니다. 비록 작은 학습 프로젝트에서는 필요 이상으로 많은 것을 생산하지만 잘 작동하는 것 같습니다. 그러나 그것은 예상됩니다.

spec.ts프로젝트의 각 각도 요소 (구성 요소, 서비스, 파이프 등)에 대해 생성되는 것으로 나타났습니다 . 주변을 검색했지만 해당 파일의 내용에 대한 설명을 찾지 못했습니다.

이 빌드 파일은 일반적으로 사용할 때 숨겨져 tsc있습니까? 나는 이름이 잘못 지정된 이름을 변경하고 싶었 기 때문에 궁금 Component했고 이름 이이 spec.ts파일 에서 참조되었다는 것을 알았습니다 .


import {
  beforeEach,
  beforeEachProviders,
  describe,
  expect,
  it,
  inject,
} from '@angular/core/testing';
import { ComponentFixture, TestComponentBuilder } from '@angular/compiler/testing';
import { Component } from '@angular/core';
import { By } from '@angular/platform-browser';
import { PovLevelComponent } from './pov-level.component';

describe('Component: PovLevel', () => {
  let builder: TestComponentBuilder;

  beforeEachProviders(() => [PovLevelComponent]);
  beforeEach(inject([TestComponentBuilder], function (tcb: TestComponentBuilder) {
    builder = tcb;
  }));

  it('should inject the component', inject([PovLevelComponent],
      (component: PovLevelComponent) => {
    expect(component).toBeTruthy();
  }));

  it('should create the component', inject([], () => {
    return builder.createAsync(PovLevelComponentTestController)
      .then((fixture: ComponentFixture<any>) => {
        let query = fixture.debugElement.query(By.directive(PovLevelComponent));
        expect(query).toBeTruthy();
        expect(query.componentInstance).toBeTruthy();
      });
  }));
});

@Component({
  selector: 'test',
  template: `
    <app-pov-level></app-pov-level>
  `,
  directives: [PovLevelComponent]
})
class PovLevelComponentTestController {
}



답변

스펙 파일은 소스 파일에 대한 단위 테스트입니다. Angular 응용 프로그램의 규칙은 각 .ts 파일에 대해 .spec.ts 파일을 갖는 것입니다. 명령 을 사용할 때 Karma 테스트 러너 ( https://karma-runner.github.io/ )를 통해 Jasmine 자바 스크립트 테스트 프레임 워크를 사용하여 ng test실행됩니다.

좀 더 읽을 때 이것을 사용할 수 있습니다.

https://angular.io/guide/testing


답변

“ng new”를 사용하여 새 각도 프로젝트를 생성하는 경우 spec.ts 파일 생성을 건너 뛸 수 있습니다. 이를 위해 –skip-tests 옵션을 적용해야합니다.

새로운 ng-app-name –skip-tests


답변

.spec.ts 파일은 개별 구성 요소에 대한 단위 테스트 용입니다. 를 통해 Karma 작업 러너를 실행할 수 있습니다 ng test. 특정 구성 요소에 대한 단위 테스트 사례의 코드 적용 범위를 보려면ng test --code-coverage


답변

.spec.ts파일은 unit testing응용 프로그램에 사용됩니다 .

생성하지 않으면 --spec=falsenew을 만드는 동안 사용하십시오 Component. 이렇게

ng generate component --spec=false mycomponentName


답변