2017-01-18 17 views
0

私は角度2コンポーネントを作成しましたが、カルマとジャスミンを使用してコンポーネントのユニットテストを作成しようとしています。私は encountered a declaration exceptionカルマとジャスミンによるAngular2ユニットテスト - "宣言例外が発生しました"

マイspecファイルとしてexcptionを取得していますが、どこが間違っているつもりです

import { ComponentFixture, TestBed } from '@angular/core/testing'; 
import { By }    from '@angular/platform-browser'; 
import { DebugElement } from '@angular/core'; 
import { PageTitle } from '../../../components/title/title.component'; 

it('true is true Out ',() => expect(true).toBe(true)); 


describe('PageTitle (inline template)',() => { 

    let comp: PageTitle; 
    let fixture: ComponentFixture<PageTitle>; 
    let de: DebugElement; 
    let el: HTMLElement; 

    TestBed.configureTestingModule({ 
     declarations: [PageTitle], 
    }); 

    fixture = TestBed.createComponent(PageTitle); 

    comp = fixture.componentInstance; 

    de = fixture.debugElement.query(By.css('h1')); 

    el = de.nativeElement; 

    it('true is true in',() => expect(true).toBe(true)); 
}); 

次のようにありますか?

答えて

0

PageTitleコンポーネントがHTMLテンプレートまたはCSSファイルにリンクされていますか?もしそうなら、それが問題です。 Angularは非同期呼び出しを使用してそれらを読み込み、テストは現在同期モードで実行されています。コンポーネントのテストのための適切な設定は、次のようなものでなければなりません:

describe('PageTitle',() => { 
beforeEach(() => { 
    TestBed.configureTestingModule(({ 
     imports: [], 
     providers: [], 
     declarations: [ 
      PageTitle 
     ] 
    })); 
}); 

it('should render component', async(() => { 
    TestBed.compileComponents().then(() => { 
     let fixture = TestBed.createComponent(PageTitle); 
     let nativeElement = fixture.debugElement.nativeElement; 

     fixture.detectChanges(); 
    }); 
}); 
関連する問題