2014-12-22 39 views
8

Karma testlerimizde kod kapsamı için istanbul kullanıyoruz. Bu, bizim birim testlerimizin kod kapsamını JavaScript’te izlemek için mükemmel bir çözümdür. Ancak bu, HTML şablonlarımızda kod kapsamını takip etmemektedir.AngularJS html şablonları için kod kapsamı

Şablonlarımızda çok az mantığımız var, ancak testlerimizde doğru bir şekilde ele aldığımızdan emin olmak istediğimiz karmaşıklık var. Tüm HTML şablonlarınızda doğru kapsama sahip olmanızı sağlamak için en iyi uygulamalar nelerdir? Bizim özel durumumuzda, ng-if ve ng anahtarını kullanıyoruz. Tüm şubelerin düzgün bir şekilde kaplandığından emin olmak isteriz.

cevap

0

Ne yazık ki, istanbul ve karma HTML şablonlarını değil JavaScript'i test etmek için geliştirilmiştir. Ng-if ve ng-switch deyimleriniz sayfada nelerin görüntülenip görüntülenmeyeceğinden, Angular'ın uçtan uca paketini Protractor kullanmayı düşünebilirsiniz. Bildiğim kadarıyla, uçtan uca test için kapsam aracı yok.

+0

Teşekkürler, belirli test türleri için iletkeni kullanıyoruz. Ön uç + arka uç entegrasyon testine yönelmişlerdir. Bu testler, kullanıcı senaryolarını test etmek için kullanılmaktadır ve ünite testleri değildir. Kod kapsamı bu testler için uygun değildir (senaryo kapsamı). DOM ile etkileşimi test eden birim testlerimiz var (arka ucun dışarıda bırakıldığı). JS kod kapsamımızı takip ediyoruz, ancak şablon kapsamımızı takip etmenin hiçbir yolu yok. –

+0

Bu sorunu anlıyorum. Şu anda herhangi bir çözüm bilmiyorum. Html'yi test etmek için istanbul'un ilginç açık kaynaklı bir çatalı olurdu. – Adam

+0

Evet, derlenmiş şablonun üzerinde kapsamaya ihtiyaç duyması ve daha sonra kapsamı orijinal dosyaya yeniden eşlenmesi gerekeceği için, açısal şablon sistemine derinlemesine bakmak zorunda kalacaktı. Kolay değil. –

1

Üçüncü taraf eklentileri (https://www.npmjs.com/package/protractor-istanbul-plugin) aracılığıyla İstanbul'dan kapsama raporları alabilirsiniz, ancak, React veya şablonlar (JSX) javascript DOM manipulasyonları dönüştüren diğer kitaplıklar aksine, Angular oluşturulan DOM maruz değil kapsama raporları oluşturmak için gerekli enstrümantasyon için uygun bir yol.