2017-07-26 8 views
1

ブログの投稿thoughtramを使用してタブコントロールを使用しています。ここには同じもののplnkrがあります。コンポーネント内のコンポーネントの単位テスト角度4

タブコンポーネントを内部的に使用しているタブコンポーネントのユニットテストケースを作成しようとしていました。そして、Angular 4でどうすればいいのかわからないので、Jasmineとしてください。

タブのコンポーネントにタブを挿入して、ngAfterContentInit()selectTab()メソッドをカバーする方法はありますか?

おかげ..

+0

このスレッドが役立つかどうかわかりません。私に知らせてください.https://stackoverflow.com/questions/35975879/angular2-test-how-do-i-mock-sub-component – JGFMK

+0

あなたは 'Tab'コンポーネントを別途テストしているわけではありません'タブ'コンポーネント?私はそれがより良いオプションになると思う。 – 0mpurdy

+0

'Tabs'コンポーネントをテストするために、' Tab'コレクションも渡す必要があります。それが私の質問だった。私はそれを 'Tabs'コンポーネントに渡すことができます。 – user7890278

答えて

1

私は以下のように、その上のテストコンポーネントと実行アサーションにラッピングすることにより、ユニットテストtabsでしょう:

@Component({ 
    template: ` 
    <tabs> 
     <tab title="tab-1"></tab> 
     <tab title="tab-2"></tab> 
    </tabs>`, 
}) 
class TestTabsComponent { } 


describe("Component: Tabs",() => { 
    let component: TestTabsComponent; 
    let fixture: ComponentFixture<TestTabsComponent>; 

    beforeEach(() => { 
    TestBed 
     .configureTestingModule({ 
     declarations: [ 
      TabsComponent, 
      TabComponent, 
      TestTabsComponent, 
     ], 
     }); 

    fixture = TestBed.createComponent(TestTabsComponent); 
    component = fixture.componentInstance; 
    }); 

    it('should have tab title', async(() => { 
    fixture.detectChanges(); 
    let compiled = fixture.debugElement.queryAll(By.css('tab')); 
    expect(compiled[0].nativeElement.title).toBe('tab-1'); 
    expect(compiled[1].nativeElement.title).toBe('tab-2'); 
    })); 

    afterEach(() => { 
    fixture.destroy(); 
    }); 
}); 

はそれが役立つだろう願っています!

+0

ありがとう。私はこれの後に100%カバレッジを得た。 – user7890278

関連する問題