2016-05-28 8 views
69

私はAngular 2(Angular一般的に...)を初めて使っていて、とても魅力的だと感じています。私はAngular CLiを使ってプロジェクトを生成し、提供しています。それはうまくいくようですが、私の小さな学習プロジェクトでは、私が必要以上に多くのことを生み出していますが、それは期待されています。Angular CLiで生成される "spec.ts"ファイルは何ですか?

私は、プロジェクト(コンポーネント、サービス、パイプなど)の角要素ごとに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 { 
} 

答えて

85

スペックファイルは、ソースファイルのためのユニットテストです。 Angularアプリケーションの規約では、.tsファイルごとに.spec.tsファイルを使用します。それらは、 'ng test'コマンドを使用するときに、Karmaタスクランナーを介してJasmine javascriptテストフレームワークを使用して実行されます。

あなたは、いくつかのさらなる読書のためにこれを使用することができます。

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

+6

おかげで、私はこれを自分で思っていました。私がテストを実行したくないとしたら、安全に.specファイルを削除できますか? (また、テストフォルダとe2eフォルダのようなファイルもありますか?) – Kokodoko

+1

私はこの質問に少し答える必要があると感じています。私たちはこれらのファイルを完全に無視して、私たちの仕事に進むことができますか? –

+7

awisemanが述べているように、specファイルは実際にあなたのアプリケーションをテストするためのものです。 テストファイルを使用しない場合は、単純に削除または無視することができます。 プロジェクトはスペックファイルなしで引き続き機能します。 – dennismuys

関連する問題