Подтвердить что ты не робот

Какие файлы "spec.ts", созданные для Angular CLi для?

Я новичок в Angular 2 (и Angular в целом...), и я нахожу его очень привлекательным. Я использую Angular CLi для создания и обслуживания проектов. Кажется, что он работает хорошо - хотя для моих небольших учебных проектов он производит больше, чем мне нужно, но этого можно ожидать.

Я заметил, что он генерирует spec.ts для каждого элемента Angular в проекте (Component, Service, Pipe и т.д.). Я искал, но не нашел объяснения, для чего предназначены эти файлы.

Являются ли эти файлы сборки, которые обычно скрыты при использовании 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 {
}
4b9b3361

Ответ 1

Spec файлы - это модульные тесты для ваших исходных файлов. Для приложений Angular принято иметь файл .spec.ts для каждого файла .ts. Они запускаются с использованием тестовой среды Jasmine javascript через тестер Karma (https://karma-runner.github.io/) при использовании команды ng test.

Вы можете использовать это для дальнейшего чтения:

https://angular.io/guide/testing

Ответ 2

если вы генерируете новый угловой проект, используя "ng new", вы можете пропустить генерацию файлов spec.ts. Для этого вы должны применить опцию --skip-tests.

ng new ng-app-name --skip-tests

Ответ 3

Файлы .spec.ts предназначены для модульных тестов для отдельных компонентов. Вы можете запустить Karma Task Runner с помощью ng test. Чтобы увидеть покрытие кода для модульных тестов для отдельных компонентов, запустите ng test --code-coverage