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 buku | Kasus negatif | Pelanggaran yang diharapkan |
|---|---|---|
| isbn wajib | field isbn dihapus | required di /isbn |
| stok integer | stok berupa teks "12" | type di /stok |
| stok bukan null | stok bernilai null | type di /stok |
| stok minimal 0 | stok -1 | minimum di /stok |
| judul minimal 1 karakter | judul teks kosong | minLength 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.