Sharing Fixture
Independent Unit Test
Secara default, class unit test itu sebenarnya akan selalu dibuat sebelum function unit test dijalankan, jadi tidak menggunakan object unit test yang sama
Begini cara berjalan unit test :
- membuat object unit test
- menjalankan fixture set up
- menjalankan function unit test
- menjalankan fixture tear down
- ulangi dari awal untuk function unit test selanjutnya
Sharing Fixture
Karena object dari class unit test selalu dibuat ulang, maka kadang agak menyulitkan jika kita ingin membuat data yang bisa di sharing antar unit test, misal koneksi database.
Untuk hal seperti ini, kita bisa membuat data nya berupa variable static, sehingga variable static tersebut tidak perlu tergantung dengan object unit test lagi.
Kode : Sharing Dengan Static
Fixture Class
Sekarang pertanyaannya, bagaimana cara menginisialisasi data static tersebut? Karena kita tidak bisa menggunakan setUp() method, karena bukan static function.
Untungnya PHPUnit mendukung sharing fixture seperti ini, nama function nya adalah :
- static function setUpBeforeClass() untuk setup diawal ketika class unit test dieksekusi, atau menggunakan @beforeClass.
- static function tearDownAfterClass() untuk dipanggil diakhir ketika class unit test selesai, atau menggunakan @afterClass.
- Sharing fixture hanya dieksekusi sekali diawal dan diakhir, walaupun di class unit test terdapat banyak function unit test.