1. Naming Convention
Nama test method harus jelas apa yang di-test:
// ❌ Buruk
@Test
public void test1() { }
@Test
public void checkIt() { }
// ✅ Baik
@Test
public void testAddWithPositiveNumbers() { }
@Test
public void testDivideByZeroThrowsException() { }
Format: test[Method/Feature][Scenario]
2. One Assertion Per Test (jika bisa)
// ❌ Kurang ideal - multiple assertions di satu test
@Test
public void testCalculator() {
assertEquals(5, calc.add(2, 3));
assertEquals(2, calc.subtract(5, 3));
assertEquals(12, calc.multiply(3, 4));
}
// ✅ Lebih baik - satu assertion per test
@Test
public void testAddReturnsCorrectSum() {
assertEquals(5, calc.add(2, 3));
}
@Test
public void testSubtractReturnsCorrectDifference() {
assertEquals(2, calc.subtract(5, 3));
}
3. Arrange-Act-Assert Pattern
Struktur setiap test dengan jelas:
@Test
public void testCalculation() {
// ARRANGE: Setup data
int a = 2;
int b = 3;
Calculator calc = new Calculator();
// ACT: Execute method yang di-test
int result = calc.add(a, b);
// ASSERT: Check hasil
assertEquals(5, result);
}
4. Test Both Success dan Failure Cases
@Test
public void testAddWithPositiveNumbers() { // Success case
assertEquals(5, calc.add(2, 3));
}
@Test
public void testAddWithNegativeNumbers() { // Edge case
assertEquals(-1, calc.add(-2, 1));
}
@Test
public void testDivideByZero() { // Failure case
assertThrows(IllegalArgumentException.class, () -> calc.divide(10, 0));
}
Kesimpulan
Unit testing dengan JUnit adalah cara cerdas untuk memastikan code lo berfungsi dengan benar. Langkah-langkahnya simple:
- Setup project dengan Maven
- Buat test class di folder
src/test/java/ - Tulis test methods dengan
@Test - Gunakan assertion (assertEquals, assertTrue, assertThrows)
- Run tests dan lihat hasilnya
Setelah terbiasa dengan JUnit, lo siap untuk belajar @Mock (Mockito) untuk testing yang lebih advanced!
Happy testing!
Butuh bantuan untuk Unit Testing komponen java projectmu? Langsung aja kontak tim kita disini….
Konsultasi via Whatsapp