Hari 28: Testing dengan PHPUnit Dasar
55 min
Last updated 09 Apr 2026
Unit Testing
Unit test memastikan kode berfungsi benar. PHPUnit adalah framework testing PHP paling populer.
// src/Kalkulator.php
class Kalkulator {
public function tambah(float $a, float $b): float { return $a + $b; }
public function kurang(float $a, float $b): float { return $a - $b; }
public function kali(float $a, float $b): float { return $a * $b; }
public function bagi(float $a, float $b): float {
if ($b === 0.0) throw new \DivisionByZeroError("Tidak bisa bagi dengan nol");
return $a / $b;
}
}
// tests/KalkulatorTest.php
use PHPUnit\Framework\TestCase;
class KalkulatorTest extends TestCase {
private Kalkulator $kalk;
protected function setUp(): void {
$this->kalk = new Kalkulator();
}
public function test_tambah(): void {
$this->assertEquals(5, $this->kalk->tambah(2, 3));
$this->assertEquals(0, $this->kalk->tambah(-1, 1));
}
public function test_bagi_nol(): void {
$this->expectException(\DivisionByZeroError::class);
$this->kalk->bagi(10, 0);
}
}
// php vendor/bin/phpunit — jalankan test
💡 Testing membuat kamu percaya diri saat refactor kode. TDD (Test-Driven Development) menulis test dulu sebelum implementasi.
💡
Notice: Testing = safety net. Selalu write test untuk edge cases (nol, string kosong, nilai negatif).
Assignment
Simulasi testing tanpa PHPUnit: buat fungsi assert_equal($actual, $expected, $msg) yang echo "PASS: $msg" jika sama, "FAIL: $msg" jika berbeda. Buat class Kalkulator, test tambah(3,4)=7, kurang(10,3)=7, kali(3,3)=9.
Expected output:
PASS: tambah(3,4) = 7
PASS: kurang(10,3) = 7
PASS: kali(3,3) = 9
PHP
index.php
Solution
Output