PHPUnit - Generate Test Data
Test data diperlukan untuk memastikan test bisa dijalankan (karena fungsi pada hakikatnya hanya menerima parameter dan mengembalikan hasil tertentu). Test data dapat dibuat secara manual dengan cara hardcode di file test. Namun hal ini kadang menjadi kendala apabila:
- Membutuhkan random value yang harus diuji cukup bervariasi
- Perlu meng-generate data yang sangat banyak untuk test case
Sehingga untuk generate test data bisa kita serahkan pada faker.
Catatan: jika belum membaca post sebelumnya tentang PHPUnit, disarankan untuk membacanya terlebih dahulu, karena post ini adalah lanjutan dari post tersebut.
Install Faker
~$ composer require --dev fzaninotto/faker
Gunakan Dalam Test
Ubah file test ExampleTest.php
menjadi:
<?php
use App\Employee;
use Faker\Factory as Faker;
class EmployeeTest extends PHPUnit\Framework\TestCase
{
private $faker;
protected function setup()
{
$this->faker = Faker::create();
}
/** @test */
public function shouldCreateObject()
{
$obj = new Employee(
$id = $this->faker->numberBetween(1, 1000),
$name = $this->faker->name,
$basicSalary = $this->faker->randomFloat
);
$this->assertEquals($id, $obj->getId());
$this->assertEquals($name, $obj->getName());
$this->assertEquals($basicSalary, $obj->getBasicSalary());
}
}
Perhatikan bahwa data test tidak lagi ditulis secara hardcode tetapi diambil dari library faker
. Untuk API lengkap dari faker dapat dicek di homepage faker.
Kemudian jalankan test dengan perintah seperti biasa.
~$ vendor/bin/phpunit
Finish
Source code bisa dilihat di sini. Semoga bermanfaat, Happy Coding!