Soy nuevo en Angular 2 (y Angular en general ...) y lo encuentro muy atractivo. Estoy usando Angular CLi para generar y servir proyectos. Parece funcionar bien, aunque para mis pequeños proyectos de aprendizaje, produce más de lo que necesito, pero eso es de esperar.
Me di cuenta de que se genera spec.ts
para cada elemento angular en un proyecto (Componente, Servicio, Tubería, etc.). He buscado pero no he encontrado una explicación de para qué sirven estos archivos.
¿Son estos archivos de compilación que normalmente están ocultos al usar tsc
? Me preguntaba porque quería cambiar el nombre de un mal nombrado Component
que había creado y descubrí que el nombre también se mencionaba en estos spec.ts
archivos.
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 {
}
fuente
--spec=false
para excluir la generación de un archivo de especificaciones. El comando completo para la generación de un nuevo componente sería la siguiente:ng g component comp-name --spec=false
. Más información aquí: github.com/angular/angular-cli/wiki/generate-componentangular-cli.json
así:{ "defaults": { "component": { "spec": false } } }
si genera un nuevo proyecto angular utilizando "ng new", puede omitir la generación de archivos spec.ts. Para esto, debe aplicar la opción --skip-tests.
fuente
Los archivos .spec.ts son para pruebas unitarias de componentes individuales. Puede ejecutar el corredor de tareas Karma
ng test
. Para ver la cobertura del código de casos de prueba de unidad para componentes particulares ejecutadosng test --code-coverage
fuente
.spec.ts
archivo se utiliza paraunit testing
su aplicación.Si no quieres que se genere, solo úsalo
--spec=false
mientras creas uno nuevoComponent
. Me gusta estofuente