Unit Testing


Unit testing adalah proses pengujian bagian terkecil dari kode secara terpisah untuk memastikan bahwa mereka berfungsi dengan benar. Laravel menyediakan banyak fitur khusus untuk memudahkan pengujian, termasuk unit testing. Pada tutorial ini, kita akan membahas langkah-langkah melakukan unit testing di Laravel secara detail.

1. Persiapan

Sebelum memulai, pastikan Anda sudah menginstal Laravel dan memiliki proyek yang siap untuk diuji. Anda juga perlu memastikan bahwa PHPUnit sudah terpasang, karena ini adalah library pengujian yang digunakan Laravel.

Instalasi PHPUnit

Umumnya, PHPUnit sudah termasuk dalam proyek Laravel. Untuk memeriksa, buka file composer.json dan pastikan ada entri untuk PHPUnit. Jika tidak ada, Anda bisa menambahkannya dengan menjalankan perintah berikut:

composer require --dev phpunit/phpunit

2. Struktur Folder Pengujian

Semua pengujian Laravel diletakkan di dalam folder tests/. Folder ini biasanya memiliki dua sub-folder:

  • Feature: untuk pengujian yang lebih mendalam, termasuk pengujian HTTP dan interaksi antar komponen.
  • Unit: untuk pengujian unit yang lebih sederhana.

Biasanya, Anda akan menempatkan pengujian unit dalam folder tests/Unit.

3. Membuat Pengujian Unit

Untuk membuat pengujian unit baru, Anda dapat menggunakan Artisan command:

php artisan make:test NamaPengujianUnit --unit

Contoh

Mari kita buat pengujian unit untuk model sederhana. Misalkan kita memiliki model User.

php artisan make:test UserTest --unit

Ini akan membuat file baru UserTest.php di tests/Unit. Anda bisa membuka file tersebut dan mulai menulis pengujian.

4. Menulis Pengujian

Berikut adalah contoh pengujian unit yang memeriksa apakah nama pengguna diatur dengan benar.

<?php

namespace Tests\Unit;

use Tests\TestCase;
use App\Models\User;

class UserTest extends TestCase
{
    public function test_user_name_can_be_set()
    {
        $user = new User();
        $user->name = 'John Doe';

        $this->assertEquals('John Doe', $user->name);
    }
}

Penjelasan

  • use Tests\TestCase: Menggunakan kelas TestCase sebagai basis pengujian.
  • assertEquals: Digunakan untuk membandingkan dua nilai.

5. Menjalankan Pengujian

Setelah menulis pengujian, Anda dapat menjalankannya menggunakan perintah:

vendor/bin/phpunit

Anda juga dapat menjalankan pengujian tertentu dengan memberikan nama file:

vendor/bin/phpunit tests/Unit/UserTest.php

6. Melihat Hasil Pengujian

Setelah menjalankan pengujian, Anda akan melihat output di terminal yang menunjukkan jumlah pengujian yang berhasil dan yang gagal.

7. Mengapa Unit Testing Itu Penting

  • Manajemen Risiko: Mendeteksi kesalahan lebih awal dalam proses pengembangan.
  • Dokumentasi: Pengujian berfungsi sebagai dokumentasi tambahan untuk bagaimana fungsi seharusnya bekerja.
  • Refactoring yang Aman: Memudahkan untuk melakukan perubahan kode tanpa mengkhawatirkan pengaruhnya terhadap bagian lain dari aplikasi.


Unit testing sangat penting dalam pengembangan perangkat lunak. Dengan mengimplementasikan pengujian unit di Laravel, Anda dapat memastikan bahwa kode Anda tetap stabil seiring dengan pertumbuhan aplikasi. Gunakanlah langkah-langkah di atas sebagai panduan untuk mulai menulis pengujian unit dalam proyek Laravel Anda.