Pengantar Pengujian di Java
Maria Milusheva
Senior Software Engineer
Dua konsep kunci:
Unit - bagian terkecil yang dapat diuji dari aplikasi, mis. sebuah method
Unit testing - Pengujian yang memverifikasi kebenaran satu "unit" kode secara terpisah dari bagian aplikasi lain
Catatan:
Unit testing membahas logika kecil, bukan gambaran besar
Jenis pengujian lain berfokus pada gambaran besar (mis. integrasi)
JUnit dinamai demikian karena kasus utamanya adalah unit testing



assertTrue() memeriksa pernyataan bernilai true: List<String> list = new ArrayList<>();
assertTrue(list.isEmpty()); // Tidak error
assertFalse() memeriksa kebalikannya:List<String> list = new ArrayList<>();
list.add("A");
assertFalse(list.isEmpty()); // Tidak error
Variabel null dapat memicu NullPointerException!
Assertion untuk memeriksa variabel bernilai null atau tidak — assertNull() dan assertNotNull()
Kasus umum: memeriksa nilai yang diambil tidak null
Map<String, Integer> catalogue = new HashMap<>();
catalogue.put("item1", 10);
// Tidak error
assertNotNull(catalogue.get("item1"));
assertNull(catalogue.get("item2"));
Misalkan kita ingin memastikan ArrayIndexOutOfBoundsException dilempar:
public String getIndex(String[] array, int index) {
return array[index];
}
JUnit menyediakan beberapa cara untuk melakukannya!
JUnit menyediakan assertThrows(), tetapi memakai sintaks Java lanjut (ekspresi lambda)
Dapat memakai assertInstanceOf() seperti ini:
try {
getIndex(new String[]{}, 4);
} catch (Exception e) {
// Berikan kelas exception yang diharapkan dan objek exception-nya
assertInstanceOf(ArrayIndexOutOfBoundsException.class, e);
}
Proyek tipikal memuat ratusan unit test
Harus ringan dan mudah dipahami
Gunakan nama informatif agar mudah terlihat apa yang salah saat gagal
Contoh: methodUnderTest_expectedBehavior_conditions()
Pengantar Pengujian di Java