2017-11-14 150 views
0

私はUIルーターをAngular 5プロジェクトで使用しています。フッターコンポーネントのテストを実行しているとき、私はこのエラーを取得しています:モジュール 'DynamicTestModule'によって予期しない値 'StateService'が返されました

Failed: Unexpected value 'StateService' declared by the module 'DynamicTestModule'. Please add a @Pipe/@Directive/@Component annotation. 

しかし、私はStateServiceをインポートしていると私はテストベッドでの私の宣言配列にそれを含めています。

import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 
import { FooterComponent } from './footer.component'; 
import { StateService } from '@uirouter/angular'; 

fdescribe('FooterComponent',() => { 
    let component: FooterComponent; 
    let fixture: ComponentFixture<FooterComponent>; 

    beforeEach(async(() => { 
    TestBed.configureTestingModule({ 
     imports: [ StateService ], 
     declarations: [ FooterComponent ], 
    }) 
    .compileComponents(); 
    })); 

    beforeEach(() => { 
    fixture = TestBed.createComponent(FooterComponent); 
    component = fixture.componentInstance; 
    fixture.detectChanges(); 
    }); 

    it('should create',() => { 
    expect(component).toBeTruthy(); 
    }); 
}); 

どこが間違っているのですか?

答えて

0

宣言配列は、宣言可能なクラスのコンポーネント、ディレクティブおよびパイプのみです。

TestBed.configureTestingModule({ 
    imports: [], 
    declarations: [ FooterComponent ], 
    providers: [StateService] 
}) 
:このような プロバイダ配列に StateServiceを追加
関連する問題