当前位置: 首页 > 知识库问答 >
问题:

Angular CLI生成的“spec.ts”文件是干什么用的?

花和宜
2023-03-14

我是 Angular 2(以及一般的 Angular...)的新手,并且发现它非常吸引人。我正在使用 Angular CLI 来生成和服务项目。它似乎运行良好——尽管对于我的小学习项目来说,它产生的比我需要的要多——

我注意到它为项目中的每个 Angular 元素(组件、服务、管道等)生成规范。我已经搜索了周围,但没有找到这些文件的用途的解释。

这些构建文件在使用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 {
}

共有3个答案

西门威
2023-03-14

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

齐泰
2023-03-14

如果使用“ng new”生成新的 angular 项目,则可以跳过 spec.ts 文件的生成。为此,您应该应用 --skip-tests 选项。

NG新的ng应用程序名称--跳过测试

海嘉赐
2023-03-14

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

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

https://angular.io/guide/testing

 类似资料:
  • 在使用时,这些构建文件是否通常被隐藏?我之所以感到疑惑,是因为我想更改我创建的一个名称不佳的的名称,并发现这些文件中也引用了该名称。

  • appengine模块示例java包含appengine模块ear/src/main/application/META-INF/maven应用程序文件。xml。 > maven-application.xml什么? appenger-modes-sample-java示例的哪一部分指的是maven-application.xml还是构建系统或运行时系统寻找的常规文件? 如果这是一个约定,它的规范在

  • 我继承了一个Java应用程序,它被配置为在Google app Engine中运行。我的pom包括com.google.appengine.appengine-maven-plugin插件,它可能与这个问题相关,也可能与这个问题无关。 在我的src目录中,在WEB-INF目录中,我有一个“app.yaml”文件。但是当我的项目构建到一个war中时,目标目录同时有一个“app.yaml”文件和一个“

  • 问题内容: 除了使AJAX内容可抓取到Google之外,shebangs / hashbangs还有其他用途吗?还是那? 问题答案: 在URL中使用哈希时,早在发明Ajax之前就已经存在。 它最初旨在作为对页面中小节的引用。在这种情况下,例如,您将在页面顶部具有一个目录,每个目录都是到同一页面一部分的哈希链接。当您单击这些链接时,页面向下(或向上)滚动到相关标记。 当浏览器接收到带有哈希值的URL

  • 这个API是干啥用的阿?看不懂

  • 本文向大家介绍头文件中的ifndef/define/endif 干什么用?相关面试题,主要包含被问及头文件中的ifndef/define/endif 干什么用?时的应答技巧和注意事项,需要的朋友参考一下 防止该头文件被重复引用。