Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Pengujian Kontrak API: JSON Schema, Respons Galat, dan Regresi

Pelajaran 8 dari 13

Batas nilai, skenario negatif, dan respons galat

Skenario negatif: field hilang, tipe salah, dan null

Setelah pelajaran ini kamu bisa menurunkan kasus negatif dari setiap aturan kontrak, satu pelanggaran per kasus, dan memastikan uji gagal karena alasan yang diharapkan.

±13 menitDiperiksa 7 Okt 2026

Materi

Uji yang hanya memakai respons sah membuktikan pemeriksa meloloskan data baik, tetapi tidak membuktikan pemeriksa menolak data rusak. Pemeriksa yang selalu mengembalikan array kosong lulus semua uji positif. Karena itu setiap aturan di kontrak diberi kasus negatif: satu salinan contoh sah yang dirusak tepat di satu tempat.

Aturan kontrak bukuKasus negatifPelanggaran yang diharapkan
isbn wajibfield isbn dihapusrequired di /isbn
stok integerstok berupa teks "12"type di /stok
stok bukan nullstok bernilai nulltype di /stok
stok minimal 0stok -1minimum di /stok
judul minimal 1 karakterjudul teks kosongminLength di /judul

Tiga perusakan muncul di hampir setiap kontrak. Field dihapus, untuk menguji required. Field diisi null, karena dokumentasi JSON Schema menegaskan null tidak sama dengan field yang tidak ada. Angka diganti teks angka, karena "42" ditolak type integer maupun number walaupun Number("42") menghasilkan 42 di JavaScript. Nilai di sekitar batas, misalnya -1, 0, dan 1 untuk minimum 0, mengikuti analisis nilai batas dari kelas Pengujian Perangkat Lunak.

Satu kasus, satu pelanggaran. Kasus yang menghapus id sekaligus mengubah total menjadi teks tetap ditolak walaupun pemeriksaan id rusak, karena pemeriksaan total masih bekerja. Uji juga memeriksa alasannya: lokasi dan kata kunci yang dilaporkan harus sama dengan yang diharapkan, bukan sekadar ada galat.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Rina membuat satu kasus negatif untuk respons pesanan: id dihapus, total diganti teks "125000", dan pelanggan diisi null. Validator menolaknya, dan uji ditandai lulus karena galatnya tidak kosong. Apa kelemahan kasus ini?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke