PHPUnit Untuk Pemula Bagian Kedua

Khairu Aqsara Sudirman

Khairu Aqsara Sudirman

Apr 25, 2020 — 3 mins read

pada tulisan sebelumnya kita sudah membahas sekilas dasar dari phpunit, pada bagian kedua ini kita akan mencoba beberapa fitur dasar lainya dari phpunit, sehingga nantinya diharapkan bisa membantu kita untuk lebih mudah dalam menulis kode test, kita akan mencoba membahas Data Provider, jadi jika teman-teman belum membaca tulisan sebelumnya saya sarankan membacanya dulu agar tidak bingung.

Data Provider

Jika kita terjemahkan kedalam bahasa sederhana, kita bisa meng-anggapnya sebagai penyuplai data atau penyedia data atau pengatur data, pada unit testing jika kita menggunakan data provider kita bisa mempersingkat penulisan kode untuk test. penggunaan data provider ini menggunakan notasi atau annotation @dataProvider

sebuah data provider haruslah berbentuk public, dan mengembalikan data dalam bentuk array, mari kita lihat kode dibawah ini

public function tambahDataProvider()
{
  return [
    'cek string'  =>  ['a','b','Error'],
    'cek basic'   =>  [1,2,3],
    'cek nol'    =>  [0,0,0],
    'cek minus'   =>  [-1,-1,-2],
    'cek min-plus' =>  [-1,1,0]
  ];
}

jika kita perhatikan barisan kode diatas, tidak ada bedanya dengan array biasa, tetapi format penulisan data provider dalam array ada aturanya, misalnya fungsi yang kita uji memiliki 2 parameter, $a dan $b maka data provider haruslah mengembalikan dalam bentuk[$a, $b, $hasil] atau sama dengan [1,2,3], mari kita coba implementasikan 

<?php 
use PHPUnit\Framework\TestCase;
use Ezadev\Contoh\Kalkulator;

class KalkulatorTest extends TestCase
{
    private $kalkulator;
    protected function setUp():void
    {
        $this->kalkulator = new Kalkulator;
    }
    protected function tearDown():void
    {
        $this->kalkulator = null;
    }
    public function tambahDataProvider()
    {
        return [
            'cek string'    =>   ['a','b','Error'],
            'cek basic'     =>   [1,2,3],
            'cek nol'       =>   [0,0,0],
            'cek minus'     =>   [-1,-1,-2],
            'cek min-plus'  =>   [-1,1,0]
        ];
    }

    /**
     * @dataProvider tambahDataProvider
     */
    public function test_fungsi_tambah_dengan_data_provider($a, $b, $hasil_yang_diharapkan)
    {
        $hasil = $this->kalkulator->tambah($a,$b);
        $this->assertEquals($hasil_yang_diharapkan, $hasil);
    }
}

kode diatas tidak jauh berbeda dengan kode test kita sebelulmnya, hanya saja fungsi test_ yang lain kita hilangkan dan diganti dengan memanfaatkan data provider, jika teman-teman perhatikan terdapat satu annotation dengan nama @dataProvider dengan nilai tambahDataProvider ini menunjukan jika fungsi test_fungsi_tambah_dengan_data_provider() akan menggunakan data provider dari fungsi tambahDataProvider() tanpa melakukan loop atau perulangan phpunit cukup pintar untuk melakukan pengulangan sebanyak data yang ada pada tambahDataProvider()

Test dengan data provider

Test dengan data provider

tentu saja hasilnya akan sama dengan hasil test kita sebelumnya, point nya data provider bersifat re-useable dan kita bisa menggunakanya berkali-kali jika memang dibutukan, nah pada kondisi ini teman-teman pasti bisa mengira-ngira kapan kira-kira kita bisa menggunakan data provider dan kapan sekiranya kita tidak menggunakanya.

laravel php
Read More

Pemrograman Object Oriented PHP Bagian I

OOP merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.