我正在使用Angular CLI来生成和提供项目。它似乎工作得很好 - 尽管对于我的小型学习项目,它产生了更多的东西,但这是可以预料的。
我注意到它为项目中的每个Angular元素(组件、服务、管道等)生成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 {
}
--spec=false
来排除生成规范文件。生成新组件的完整命令为:ng g component comp-name --spec=false
。更多信息请查看这里:https://github.com/angular/angular-cli/wiki/generate-component。 - Deanangular-cli.json
文件可以禁用此功能,修改如下:{ "defaults": { "component": { "spec": false } } }
- Ali Sherafat