Pengujian Unit CSS dengan Jest
Uji keluaran CSS-in-JS dan buat snapshot komponen bergaya menggunakan Jest serta pencocok terkait.
Pengujian Unit CSS dengan Jest adalah pelajaran CSS Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CSS Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CSS Academy mencakup 4 pelajaran total.
Mengapa Menguji CSS dengan Jest?
Pengujian unit CSS memverifikasi gaya terhitung, penerapan kelas, dan perilaku tata letak secara terprogram. Pengujian ini menangkap regresi logika CSS (kelas yang salah diterapkan, pengubah yang hilang) tanpa memerlukan tangkapan layar peramban atau pemeriksaan visual manual.
Dukungan JSDOM dan CSS
Jest menggunakan JSDOM secara bawaan, yang memiliki dukungan CSS terbatas—JSDOM tidak menghitung tata letak atau mengevaluasi pemilih yang kompleks. Untuk pengujian keberadaan kelas dasar dan gaya sebaris, JSDOM sudah memadai; untuk pengujian properti terhitung, gunakan jest-environment-jsdom dengan tiruan modul CSS.
Menguji Penerapan Kelas
Render sebuah komponen dan pastikan kelas CSS yang benar diterapkan berdasarkan properti atau keadaannya. Hal ini memverifikasi bahwa logika kelas bersyarat (aktif, dinonaktifkan, varian kesalahan) berfungsi dengan benar tanpa memverifikasi nilai gaya tertentu.
<button class="btn-primary">Primary Button</button>
Modul CSS dalam Pengujian
Jest mengubah impor Modul CSS menggunakan identity-obj-proxy. Proksi ini mengembalikan string nama kelas untuk setiap properti yang diakses: styles.primary mengembalikan "primary". Pengujian dapat memverifikasi nama kelas tanpa memerlukan CSS asli untuk diterapkan.
jest-styled-components
Untuk proyek Styled Components, jest-styled-components menambahkan pencocok toHaveStyleRule. Uji bahwa komponen bergaya menerapkan nilai properti CSS yang tepat berdasarkan propertinya tanpa memerlukan peramban asli untuk menghitung gaya.
<button class="btn">Enabled</button>
<button class="btn" disabled>Disabled (0.5 opacity)</button>
@testing-library/jest-dom
jest-dom memperluas Jest dengan pencocok khusus DOM: toHaveStyle (memeriksa gaya sebaris atau terhitung), toHaveClass (memeriksa daftar kelas), toBeVisible (memeriksa tampilan/visibilitas/opasitas). Pencocok ini membuat penegasan CSS mudah dibaca dan ekspresif.
Pengujian Tangkapan Nama Kelas
Tangkapan komponen merekam markah hasil render, termasuk nama kelas. Penggantian nama Modul CSS atau perubahan logika kelas bersyarat akan terlihat sebagai perbedaan tangkapan. Cara ini berguna untuk segera menangkap perubahan kelas yang tidak diinginkan, tetapi memerlukan disiplin dalam meninjau tangkapan.
Keterbatasan Pengujian CSS dengan Jest
Jest tidak dapat menghitung tata letak (offsetWidth, getBoundingClientRect), mengevaluasi kueri media, atau menjalankan animasi CSS. Hal-hal tersebut memerlukan lingkungan peramban asli melalui Playwright atau Cypress. Pengujian CSS dengan Jest merupakan pelengkap, bukan pengganti, pengujian berbasis peramban.
Menguji Properti Kustom CSS
Tetapkan properti kustom CSS pada elemen wadah dalam pengujian: element.style.setProperty("--color-primary", "red"). Baca nilai terhitung dengan getComputedStyle(el).getPropertyValue("--color-primary"). JSDOM mendukung pembacaan properti kustom, tetapi tidak mendukung cascade.
Menguji Kelas Animasi
Pastikan kelas pemicu animasi ditambahkan atau dihapus pada waktu yang tepat: uji bahwa komponen modal menambahkan kelas animate-enter saat dibuka dan kelas animate-exit sebelum dilepas dari DOM. CSS animasinya sendiri diuji melalui VRT.
Cakupan Logika CSS
Logika CSS berada di JavaScript: string kelas bersyarat, nilai penyedia tema, dan pembuatan objek gaya. Cakupan Jest (Istanbul) mencakup logika CSS JavaScript ini. Tulis pengujian untuk mencakup semua cabang, sehingga setiap kombinasi varian dan keadaan dijalankan.
Uji Pemahaman
Apa yang dilakukan identity-obj-proxy saat digunakan dengan Modul CSS dalam Jest?
Ringkasan
Pengujian unit CSS dengan Jest memverifikasi logika penerapan kelas, gaya bersyarat, dan perilaku Modul CSS tanpa peramban asli. Gunakan identity-obj-proxy untuk Modul CSS, jest-styled-components untuk Styled Components, dan pencocok jest-dom untuk penegasan yang mudah dibaca. Gabungkan dengan VRT untuk cakupan mutu CSS yang menyeluruh.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pengujian Unit CSS dengan Jest” gratis?
Ya — teks lengkap “Pengujian Unit CSS dengan Jest” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CSS Academy, upgrade ke CoddyKit PRO. Kursus CSS Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pengujian Unit CSS dengan Jest”?
Uji keluaran CSS-in-JS dan buat snapshot komponen bergaya menggunakan Jest serta pencocok terkait. Kamu berlatih CSS Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai CSS Academy?
Tidak diperlukan pengalaman sebelumnya. CSS Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pengujian Unit CSS dengan Jest” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran CSS Academy ini?
Ya. Setiap pelajaran CSS Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Konsep Pengujian Regresi Visual
- Percy dan Chromatic untuk Storybook
- Pengujian Unit CSS dengan Jest
- Pengujian Aksesibilitas: color-contrast dan fokus