什么是“规格”?由Angular CLI生成的文件?

我刚接触Angular 2(以及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 {
}
189396 次浏览

规范文件是源文件的单元测试。Angular应用的约定是有一个.spec。Ts文件为每个. Ts文件。当你使用ng test命令时,它们是通过Karma测试运行器(https://karma-runner.github.io/)使用Jasmine javascript测试框架运行的。

你可以用它来进一步阅读:

< a href = " https://angular。io /指导/测试noreferrer“rel = > https://angular.io/guide/testing < / >

如果你使用"ng new"生成新的angular项目,你可能会跳过spec.ts文件的生成。对此,您应该应用——skip-tests选项。

Ng -app-name——skip-tests

< p > .spec。Ts文件用于单个组件的单元测试。 你可以通过ng test运行Karma任务运行器。为了查看特定组件的单元测试用例的代码覆盖率,请运行ng test --code-coverage

.spec.ts文件用于应用程序的unit testing

如果你不想生成它,只需在创建新的Component时使用--spec=false。像这样

ng generate component --spec=false mycomponentName