2017-12-05 27 views
0

ためのコードカバレッジ角度を持つアプリケーション開発中(2,4,5を、...)の人々が角度 - 私はそのいずれかのツールを見ていないしかしビュー

*ngIf="whatever_condition"の多くを使用して、より少ないことも多いngSwitchされていますどのくらいのコードが実際にテストされたかについての情報を提供することができます。

明らかにTypescriptファイルには、カバレッジを得るためのistanbulローダーがありますが、それは高いカバレッジロジックの大きなチャンクは、測定がないビューに置かれます。つまり、私がTypescriptでブランチカバレッジを90%持っていても、ビューに2倍のブランチがある場合、実際のカバレッジは45%から90%の間である可能性があります。

角度ビューのコードカバレッジを測定して意味のある方法で表示できるツールはありますか?

+0

([Webstormは、コードカバレッジを持っている] https://www.jetbrains.com/help/webstorm/code役に立てば幸い代わり

を必要とするものであれば考えます-coverage.html)しかし、私はそれを使用していません。 – lloyd

+0

角度のテンプレートはjavascriptにコンパイルされ、実行されるものとテンプレート自体の間にはリンクがありません。私が間違っていて、それを設定する方法を知る必要がある場合を除きます。 – kubal5003

+0

あなたの '* ngIf =" whatever_condition "のロジックはどれくらい複雑ですか。 [karmaのコードカバレッジ](https://stackoverflow.com/questions/44463706/code-coverage-for-angular-2)は、通常、ロジックが置かれているファイルを考慮します。 [これはコードの匂いです](http://daginge.com/technology/2013/12/14/testing-angular-templates-with-jasmine-and-karma/)あなたはコントローラにwhatever_conditionを置くことを検討するべきですビューをテストする必要はありません。 – lloyd

答えて

0

私はテンプレートでカバレッジを検討していませんが、コンポーネントテストとユニットテストを調べることができます。

私は通常、次のようにします。

it('',()=>{ 
    component.whatever_condition = true; 
    const el = fixture.debugElement.query(By.css('someElement')); 

    fixture.detectChanges(); 

    expect(el).toBeDefined(); 
}); 

を私はこれがあなたのカバレッジを与えるものではありません実現が、それはあなたのテンプレートのテストを提供します。

NBはE2Eテストは、あなたが、私はそれが

+0

申し訳ありませんが、ビューをテストせずに私はあなたが提案したものである「角度の道」をテストしていますが、問題は私が何がテストされているのか、ちょうどツールを見ているのか分かりません。私はまた、コードカバレッジであっても実際のケースカバレッジではないことを知っていますが、それは別の議論です。 – kubal5003

+0

私にはあなたの責任ではないものをテストしたいようです。モデルバインディングを使用して、データに基づいてビューを更新することは、Angularと同様に行われ、テストの範囲を超えています。フレームワークがそれに期待されることをすると仮定することは大丈夫です。 – methgaard

+0

Angularが正しく動作しているかどうかテスト中ではありません。あなたが言っていることを言い換えると、Typescriptで書いたテスト条件は、私の責任ではありません。Typescriptは正しく実行されることが保証されています。私のポイント:) – kubal5003

関連する問題