ch04-HeaderBar
Last updated
Last updated
Uygulamanın Angular versiyonunda, HeaderBarBrand
üzerinde bir üst bileşen bulunmaktadır. Bunu da oluşturalım.
feat/headerBar
adında bir dal oluşturun. src/components/
klasörü altında 2 dosya oluşturun; HeaderBar.cy.tsx
, HeaderBar.tsx
. Her zamanki gibi, bileşen işlemi ile minimal başlayın; aşağıdakileri dosyalara kopyalayın ve yarn cy:open-ct
ile çalıştırıcıyı açtıktan sonra testi çalıştırın.
HeaderBar
bileşeninde, HeaderBar
ın alt bileşeni olan, üst düzey bir data-cy
seçici ekledik ve değeri header-bar-brand
oldu. Alt bileşenin varlığını kontrol etmek için başarısız bir test ekleyelim (Kırmızı 1).
Alt bileşeni ana bileşene ekleyin.
HeaderBarBrand
bileşeni ile aldığımız react-router
ile ilgili hatayı alıyoruz. Bir alt bileşen react-router
kullanıyorsa, ana bileşeni test ederken, ana bileşeni de BrowserRouter
içine sarmamız gerekir (Yeşil 1).
Alt bileşen işlem görüyor.
Özellikler, alt bileşenin bir header
ve bir nav
tarafından sarıldığını gösteriyor. Ayrıca koyu temayı veren bir css de var. Bunları tarayıcıdan kopyalayabiliriz. Bileşenin en üst etiketine de bir data-cy
seçici ekliyoruz.
Bileşen, CSS ile harika görünüyor.
Geleneksel bir KırmızıYeşilDüzenleme döngüsüne gerekli olmadığını fark edin; Kırmızımız bu durumda bileşenin son haliyle işlem görmemesiydi ve bunu adım adım geliştirdik.
Bu noktada başka ne test edilebilir? Alt bileşen için testleri tekrarlamamıza gerek yok, çünkü bunların hepsini çocukta ele aldık. nav
etiketinin bir özelliğini kontrol etmek dışında değerli başka bir ek kontrol yoktur. Bunu, Cypress testing library ile kolayca ekleyebiliriz (Düzenleme 1).
Bu bölümün ana çıkarımı, bileşenler arasındaki ebeveyn-çocuk ilişkisi ve üst düzey data-cy
seçicilerin çocuk bileşenlerin daha yüksek düzeydeki testlerde daha kolay başvurulmasını nasıl sağladığına dair bir gösterimdir.
Eğer bir çocuk bileşen react-router
kullanıyorsa, ebeveyn bileşeni test ederken, ebeveyn bileşenini de BrowserRouter
içine sarmamız gerekir.
Bir ebeveyn bileşeninde, çocuk bileşenin tüm testlerini tekrarlamamıza gerek yoktur, çünkü tümünü çocukta ele aldık. Aynı düşünce süreci, e2e ile daha yüksek düzeydeki testlere de uygulanır.
Bileşeni tasarlarken, mutlaka geleneksel bir KırmızıYeşilDüzenleme döngüsünden geçmemiz gerekmez. Test aracımız aynı zamanda tasarım aracı olduğunda, KırmızıYeşilDüzenleme, bileşene sınıflar ve css eklerken bileşene kademeli görsel iyileştirmeler de olabilir.