Pengujian Snapshot HTML
Temukan perubahan HTML yang tidak disengaja dengan pengujian snapshot.
Pengujian Snapshot HTML adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.
Apa Itu Pengujian Cuplikan
Pengujian cuplikan merekam keluaran yang dirender dari suatu komponen atau halaman pada proses pertama, lalu pada proses berikutnya membandingkan keluaran baru dengan cuplikan yang disimpan. Setiap perubahan pada keluaran HTML menyebabkan pengujian gagal hingga cuplikan tersebut diperbarui secara sengaja.
Pengujian Cuplikan Jest
Pencocok Jest toMatchSnapshot() membuat serialisasi nilai (termasuk JSX yang dirender menjadi HTML) dan membandingkannya dengan berkas yang disimpan. npx jest -u memperbarui cuplikan saat terjadi perubahan yang disengaja. Pengujian berfungsi sebagai jaring pengaman regresi terhadap perubahan rendering yang tidak disengaja.
import { render } from "@testing-library/react";
import Button from "./Button";
test("Button renders consistently", () => {
const { container } = render(<Button>Save</Button>);
expect(container.innerHTML).toMatchSnapshot();
});Storybook Test Runner
Storybook Test Runner menjalankan setiap contoh dan mengambil cuplikan keluarannya melalui axe (aksesibilitas) serta serialisasi DOM. Jika digabungkan dengan Chromatic, alat ini menambahkan regresi visual—perbedaan tingkat piksel selain perbedaan DOM.
Regresi Visual dengan Percy atau Chromatic
Percy dan Chromatic mengambil cuplikan halaman yang dirender sebagai gambar dan menampilkan perbedaan visual. Keduanya menangkap regresi CSS yang tidak terlihat oleh cuplikan DOM (pergantian font, penyesuaian margin, atau perubahan warna). Padukan cuplikan DOM (murah, cepat) dengan cuplikan visual (mahal, menyeluruh).
Pemeliharaan Cuplikan
Cuplikan yang berubah "terlalu mudah" menjadi gangguan. Hindari mengambil cuplikan nilai yang tidak stabil (tanggal, id, kunci acak). Gunakan pencocok properti Jest (expect.any(String)) untuk bidang yang memang bervariasi di antara proses. Jaga agar cuplikan tetap kecil dan terfokus.
Peninjauan Kode untuk Cuplikan
Perbedaan berkas cuplikan dalam pull request merupakan bahan peninjauan utama. Peninjau memverifikasi bahwa perubahan DOM memang disengaja dan diharapkan—serta menangkap efek berantai yang tidak disengaja dari perubahan CSS "sederhana". Perlakukan perbedaan cuplikan seperti perbedaan lainnya.
Jangan Membuat Cuplikan untuk Semuanya
Membuat cuplikan untuk perenderan halaman tingkat atas yang sangat besar itu rapuh—setiap perubahan kecil merambat menjadi perbedaan raksasa. Buat cuplikan pada tingkat komponen: setiap Tombol, setiap Kartu, setiap FormField. Perenderan tingkat halaman lebih tepat diuji dengan pengujian regresi visual.
Serialisasi Cuplikan
Pilih cara serialisasi: HTML lengkap, DOM yang disederhanakan, hanya properti, atau pohon aksesibilitas. Setiap format menangkap jenis regresi yang berbeda. Untuk komponen antarmuka pengguna, HTML lengkap adalah yang paling menyeluruh; untuk logika yang digerakkan properti, hanya properti lebih hemat dan jarang menghasilkan positif palsu.
Saat Cuplikan Rusak
Penyebab yang paling umum adalah refaktor yang menghasilkan HTML yang setara tetapi memiliki struktur berbeda. Periksa perbedaannya: jika perubahan itu disengaja dan lebih baik, perbarui cuplikannya. Jika tidak terduga, perbaiki kode yang mendasarinya. Jangan pernah menjalankan jest -u secara membabi buta tanpa pemeriksaan.
Cuplikan Lintas Peramban
Alat regresi visual merender di beberapa peramban dan melaporkan perbedaan khusus peramban. Gunakan ini untuk menemukan CSS yang dirender secara berbeda di Safari dan Chrome—hal yang umum pada fitur tata letak baru dalam fase adopsi awal. Tanpa cuplikan lintas peramban, regresi semacam itu hanya ditemukan melalui QA manual.
Menggabungkannya dengan Pengujian Lain
Pengujian cuplikan diperlukan, tetapi belum memadai. Pengujian ini menangkap perubahan perenderan yang tidak disengaja, tetapi bukan kesalahan logika (mengeklik tombol menghasilkan tindakan yang benar). Padukan dengan pengujian unit untuk perilaku dan pengujian menyeluruh dari awal hingga akhir untuk alur pengguna—setiap lapisan menangkap kegagalan yang berbeda.
Performa
Pengujian cuplikan cepat—pengujian ini membandingkan teks atau berkas. Pengujian regresi visual lebih lambat (merender piksel, membandingkan gambar, dan sering kali berjalan di beberapa peramban). Jalankan cuplikan pada setiap proses integrasi berkelanjutan; jalankan regresi visual pada setiap PR, tetapi mungkin tidak pada setiap komit, bergantung pada anggaran integrasi berkelanjutan.
Pemeriksaan Pengetahuan
Mengapa pengujian cuplikan DOM biasanya dilengkapi dengan pengujian regresi visual seperti Percy atau Chromatic?
Ringkasan
Pengujian cuplikan menangkap HTML hasil perenderan pada proses pertama dan menandai setiap perubahan pada proses berikutnya. Gunakan Jest toMatchSnapshot untuk DOM komponen, Storybook Test Runner untuk cerita, dan Percy/Chromatic untuk regresi visual pada tingkat piksel. Buat cuplikan pada tingkat komponen (bukan tingkat halaman), kecualikan nilai yang tidak stabil, dan tinjau perbedaannya dengan saksama dalam PR. Gabungkan dengan pengujian unit dan pengujian menyeluruh dari awal hingga akhir untuk cakupan lengkap.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pengujian Snapshot HTML” gratis?
Ya — teks lengkap “Pengujian Snapshot HTML” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pengujian Snapshot HTML”?
Temukan perubahan HTML yang tidak disengaja dengan pengujian snapshot. Kamu berlatih HTML 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 HTML Academy?
Tidak diperlukan pengalaman sebelumnya. HTML 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 4 dari 4.
Berapa lama pelajaran “Pengujian Snapshot HTML” 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 HTML Academy ini?
Ya. Setiap pelajaran HTML 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
- Validator Markup W3C
- Audit HTML Lighthouse
- pa11y dan axe untuk Pengujian Aksesibilitas
- Pengujian Snapshot HTML