Vitest Basics
Menulis file test Vitest sederhana, memberi assertion yang jelas, dan menjalankan test di project lokal.
Tujuan belajar
- Menjelaskan peran Vitest sebagai test runner dan assertion API
- Mengenali penamaan file .test.ts atau .spec.ts
- Menulis describe, it, dan expect untuk function kecil
- Menjalankan test melalui npm script di local project
Isi lesson
7 blok- 1.Test runner memberi cara konsisten untuk menjalankan assertionBelum selesaiWajib
- 2.Pasang Vitest di project lokalBelum selesaiWajib
- 3.Satu function, satu file test yang jelasBelum selesaiWajib
- 4.Coding practiceBelum selesaiWajib
- 5.Cek pemahamanBelum selesaiWajib
- 6.Jalankan command satu per satu saat setupBelum selesaiWajib
- 7.RingkasanBelum selesaiWajib
Test runner memberi cara konsisten untuk menjalankan assertion
WajibVitest menemukan file test, menjalankan test case, lalu melaporkan assertion yang lulus atau gagal. Untuk mulai kecil, simpan code dan test secara berdekatan, misalnya format-duration.ts serta format-duration.test.ts. describe mengelompokkan behavior, it memberi nama satu case, dan expect menyatakan hasil yang diharapkan. Setup test dapat berbeda antara Vite, Next.js, dan project yang sudah memiliki tooling sendiri. FluentStack membaca struktur test, bukan menjalankan Vitest di project atau browser-mu.
Bagian ini memengaruhi progres lesson.
Pasang Vitest di project lokal
Wajibnpm install -D vitestJalankan dari folder yang memiliki package.json. Setelah dependency muncul di devDependencies, tambahkan atau sesuaikan test script mengikuti setup project. Jangan mengganti config hanya karena menyalin satu contoh dari stack yang berbeda.
Bagian ini memengaruhi progres lesson.
Satu function, satu file test yang jelas
Wajib// format-duration.ts
export function formatDuration(minutes: number) {
return minutes + " menit";
}
// format-duration.test.ts
import { describe, expect, it } from "vitest";
import { formatDuration } from "./format-duration";
describe("formatDuration", () => {
it("adds the menit label", () => {
expect(formatDuration(24)).toBe("24 menit");
});
});File test mengimport public function yang ingin dilindungi lalu menguji contract-nya. Jalankan npm run test hanya setelah script test benar-benar tersedia di package.json. Practice workspace tidak dapat membuktikan konfigurasi atau result terminal project lokal.
Bagian ini memengaruhi progres lesson.
Coding practice
WajibDibuka di workspace khususWrite format duration Vitest test
Tambahkan test file Vitest untuk function formatDuration dengan assertion output yang mudah dibaca. Preview tidak menjalankan npm test.
Tujuan awal: Fokus di tab TSX.
Practice ini dibuka di workspace khusus. Buka practice untuk memakai editor, preview, dan cek otomatis.
Tombol selesai aktif setelah semua validasi wajib lolos.
Cek pemahaman
WajibJawab duluCek pemahaman singkat
Apa manfaat utama nama test seperti adds the menit label dibanding nama test satu?
Progres lesson naik setelah jawaban benar.
Peringatan
WajibJalankan command satu per satu saat setup
Jangan langsung memasang Vitest, React Testing Library, environment DOM, config, dan coverage tool sekaligus. Mulai dari satu unit test yang bisa berjalan, lalu baca outputnya. Jika terminal berkata module atau environment belum tersedia, perbaiki penyebabnya berdasarkan dokumentasi tool dan framework yang benar-benar dipakai project-mu.
Bagian ini memengaruhi progres lesson.
Ringkasan
Wajib- Vitest menjalankan test file dan melaporkan assertion.
- describe, it, dan expect membantu menulis test yang mudah dibaca.
- File test biasanya memakai nama .test atau .spec sesuai konfigurasi project.
- Local terminal adalah sumber kebenaran untuk result Vitest, bukan practice workspace.
- Berikutnya, React Testing Library menguji output component seperti yang ditemukan user.
Bagian ini memengaruhi progres lesson.
Langkah berikutnya
Selesaikan bagian penting lesson ini
Lanjutkan blok wajib berikutnya: Test runner memberi cara konsisten untuk menjalankan assertion.