Angular CLi生成的“spec.ts”文件是什么?

我是新来Angular 2(和angular一般…),我觉得它非常有吸引力。 我正在使用Angular CLi来生成和服务项目。 它似乎运作良好 – 尽pipe对于我的小型学习项目来说,它产生的东西比我需要的多,但这是可以预料的。

我注意到它spec.ts为项目中的每个Angular元素(Component,Service,Pipe等)生成spec.ts 我已经四处search,但还没有find这些文件的解释。

这些使用tsc时通常隐藏的构build文件? 我想知道,因为我想改变我创build的命名不好的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 { } 

spec文件是你的源文件的unit testing。 Angular2应用程序的约定是每个.ts文件都有一个.spec.ts文件。 当您使用'ng test'命令时,它们通过Karma任务运行器使用Jasmine javascripttesting框架运行。

Angular2的testing文档还没有完全充实,但是您可以使用它来进一步阅读:

https://angular.io/docs/ts/latest/guide/testing.html