ch04-HeaderBar
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.
// src/components/HeaderBar.cy.tsx
import HeaderBar from "./HeaderBar";
describe("HeaderBar", () => {
it("should", () => {
cy.mount(<HeaderBar />);
});
});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).
Bileşen testinin RTL sürümü
Özet ve çıkarılacak dersler
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.
Last updated