Jest ile CSS Birim Testi
Jest ve ilgili eşleştiricileri kullanarak CSS-in-JS çıktılarını test edin ve stillendirilmiş bileşenlerin anlık görüntülerini oluşturun.
Jest ile CSS Birim Testi, CoddyKit'te ücretsiz bir CSS Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, CSS Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. CSS Academy kursu toplamda 4 dersten oluşur.
CSS Jest ile Neden Sınanır?
CSS birim sınaması, hesaplanan stilleri, sınıf uygulamasını ve düzen davranışını programlı olarak doğrular. Tarayıcı ekran görüntüsü veya elle yapılan görsel inceleme gerektirmeden CSS mantığı gerilemelerini (yanlış sınıf uygulanması, eksik değiştirici) yakalar.
JSDOM ve CSS Desteği
Jest, varsayılan olarak sınırlı CSS desteğine sahip JSDOM'u kullanır; düzeni hesaplamaz veya karmaşık seçicileri değerlendirmez. Temel sınıf varlığı ve satır içi stil sınaması için JSDOM yeterlidir; hesaplanan özellikleri sınamak için CSS modülü taklitleriyle jest-environment-jsdom kullanın.
Sınıf Uygulamasını Sınama
Bir bileşeni oluşturun ve özelliklere veya duruma göre doğru CSS sınıflarının uygulandığını doğrulayın. Bu, belirli stil değerlerini doğrulamadan koşullu sınıf mantığının (etkin, devre dışı, hata çeşidi) doğru çalıştığını gösterir.
<button class="btn-primary">Primary Button</button>
Sınamalarda CSS Modülleri
Jest, CSS Modülü içe aktarmalarını identity-obj-proxy kullanarak dönüştürür. Bu vekil, erişilen her özellik için sınıf adı dizesini döndürür: styles.primary, "primary" değerini döndürür. Sınamalar, gerçek CSS'nin uygulanmasına gerek kalmadan sınıf adlarını doğrular.
jest-styled-components
Styled Components projeleri için jest-styled-components, bir toHaveStyleRule eşleştiricisi ekler. Gerçek bir tarayıcının stilleri hesaplamasına gerek kalmadan, stillendirilmiş bir bileşenin özelliklere göre doğru CSS özellik değerlerini uyguladığını sınayın.
<button class="btn">Enabled</button>
<button class="btn" disabled>Disabled (0.5 opacity)</button>
@testing-library/jest-dom
jest-dom, Jest'i DOM'a özgü eşleştiricilerle genişletir: toHaveStyle (satır içi veya hesaplanan stili denetler), toHaveClass (sınıf listesini denetler), toBeVisible (display/visibility/opacity değerlerini denetler). Bunlar CSS doğrulamalarını okunabilir ve ifade gücü yüksek hâle getirir.
Sınıf Adları için Görüntü Sınaması
Bileşen görüntüleri, sınıf adları da dâhil olmak üzere oluşturulan işaretlemeyi yakalar. CSS Modülü yeniden adlandırmaları veya koşullu sınıf mantığındaki değişiklikler, görüntü farkları olarak görünür. İstenmeyen sınıf değişikliklerini hızla yakalamak için kullanışlıdır; ancak görüntüleri dikkatle inceleme disiplini gerektirir.
Jest ile CSS Sınamasının Sınırlamaları
Jest düzeni hesaplayamaz (offsetWidth, getBoundingClientRect), medya sorgularını değerlendiremez veya CSS animasyonlarını çalıştıramaz. Bunlar için Playwright veya Cypress aracılığıyla gerçek bir tarayıcı ortamı gerekir. Jest CSS sınamaları, tarayıcı tabanlı sınamaların tamamlayıcısıdır; onların yerine geçmez.
CSS Özel Özelliklerini Sınama
Sınamalarda bir kapsayıcı element üzerinde CSS özel özelliklerini ayarlayın: element.style.setProperty("--color-primary", "red"). Hesaplanan değerleri getComputedStyle(el).getPropertyValue("--color-primary") ile okuyun. JSDOM, özel özelliklerin okunmasını destekler ancak basamaklı uygulamayı desteklemez.
Animasyon Sınıflarını Sınama
Animasyonu tetikleyen sınıfların doğru zamanda eklenip kaldırıldığını doğrulayın: bir iletişim penceresi bileşeninin açılırken animate-enter sınıfını, kaldırılmadan önce de animate-exit sınıfını eklediğini sınayın. Animasyon CSS'si VRT aracılığıyla sınanır.
CSS Mantığı için Kapsam
CSS mantığı JavaScript'te bulunur: koşullu sınıf dizeleri, tema sağlayıcısı değerleri ve stil nesnesi oluşturma. Jest kapsamı (Istanbul), bu JavaScript CSS mantığını kapsar. Her dalı kapsayacak sınamalar yazın; böylece her çeşit ve durum birleşiminin kullanıldığı garanti edilir.
Bilgi Kontrolü
Jest'te CSS Modülleriyle kullanıldığında identity-obj-proxy ne yapar?
Özet
Jest ile CSS birim sınaması, gerçek bir tarayıcı olmadan sınıf uygulama mantığını, koşullu stillendirmeyi ve CSS Modülü davranışını doğrular. CSS Modülleri için identity-obj-proxy, Styled Components için jest-styled-components ve okunabilir doğrulamalar için jest-dom eşleştiricilerini kullanın. Kapsamlı CSS kalite kapsamı için bunları VRT ile birleştirin.
Sıkça Sorulan Sorular
“Jest ile CSS Birim Testi” dersi ücretsiz mi?
Evet — “Jest ile CSS Birim Testi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve CSS Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. CSS Academy kursu toplamda 4 dersten oluşur.
“Jest ile CSS Birim Testi” dersinde ne öğreneceğim?
Jest ve ilgili eşleştiricileri kullanarak CSS-in-JS çıktılarını test edin ve stillendirilmiş bileşenlerin anlık görüntülerini oluşturun. CSS Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
CSS Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te CSS Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Jest ile CSS Birim Testi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu CSS Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her CSS Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Görsel Gerileme Testi Kavramları
- Storybook için Percy ve Chromatic
- Jest ile CSS Birim Testi
- Erişilebilirlik Testi: color-contrast ve focus