Pemrogram terbaik membuat kesalahan. Perbedaan antara pemrogram yang baik dan pemrogram yang buruk adalah pemrogram yang baik dapat menemukan kesalahan sebanyak mungkin melalui pengujian. Semakin cepat Anda menguji bug, semakin cepat Anda menemukannya dan semakin murah biaya untuk menemukan dan memperbaikinya. Ini menjelaskan mengapa pengujian perangkat lunak sebelum dirilis sangat bermasalah. Kebanyakan bug tidak pernah ditemukan, dan perbaikan bug yang ditemukan sangat tinggi sehingga Anda harus memprioritaskan perbaikan bug tersebut saja karena Anda tidak mampu memperbaiki semuanya.
Menguji dengan PHPUnit tidak sepenuhnya berbeda dengan pendekatan yang Anda gunakan. Mereka hanya mempunyai metode yang berbeda. Perbedaan antara keduanya adalah pemeriksaan apakah program berfungsi dengan benar dilakukan melalui kumpulan cuplikan kode yang dapat diuji secara otomatis. Cuplikan kode ini disebut pengujian unit. Pada bagian ini, pertama-tama kita melakukan pengujian otomatis berdasarkan kode pengujian yang dicetak. Misalkan kita ingin menguji array bawaan PHP. Salah satu pengujian yang perlu dilakukan adalah fungsi sizeof(). Fungsi sizeof() harus mengembalikan 0 untuk setiap array yang baru dibuat. Saat kita menambahkan anggota array baru, sizeof() harus mengembalikan 1. Contoh 1 menunjukkan apa yang ingin kita uji.
Contoh 1. Uji array dan sizeof()
<?php
$perlengkapan = Array( );
// $fixture harus kosong.
$perlengkapan[] = "elemen";
// $fixture harus berisi anggota array.
?>
Cara pengujian yang paling sederhana adalah dengan mencetak hasil operasi sizeof() sebelum dan sesudah penambahan anggota array. Jika 0 dan 1 dikembalikan, berarti Array dan sizeof() beroperasi secara normal.
Contoh 2. Gunakan pernyataan print untuk menguji Array dan sizeof()
<?php
$perlengkapan = Array( );
ukuran cetak($perlengkapan) "n";
$perlengkapan[] = "elemen";
ukuran cetak($perlengkapan) "n";
?>
0
1
Sekarang, kita memindahkan program pengujian dari yang memerlukan interpretasi manual menjadi menjalankannya secara otomatis. Dalam Contoh 3, kita membandingkan nilai yang diharapkan dengan nilai sebenarnya dan mencetak ok jika keduanya sama. Jika kami menemukan beberapa hasil tidak baik, kami tahu ada masalah.
Contoh 3. Bandingkan nilai yang diharapkan dan sebenarnya dari Array dan sizeof()
<?php
$perlengkapan = Array( );
print sizeof($fixture) == 0 ? "oken" : "tidak oken"
;
print sizeof($fixture) == 1 ? "oken" : "tidak oken";
?>
OKE
oke
sekarang kita perkenalkan elemen baru, jika nilai yang diharapkan berbeda dari nilai sebenarnya, kita berikan pengecualian. Dengan cara ini keluaran kita lebih sederhana. Jika pengujian berhasil, tidak ada yang dilakukan, jika ada pengecualian yang tidak tertangani, kita tahu ada sesuatu yang salah.
Contoh 4. Menggunakan fungsi pernyataan untuk menguji Array dan sizeof()
<?php
$perlengkapan = Array( );
menegaskanTrue(sizeof($fixture) = = 0);
$fixture[] = "elemen";
menegaskanTrue(ukuran($perbaikan) = = 1);
fungsi menegaskanTrue($kondisi) {
jika (!$kondisi) {
throw new Exception("Pernyataan gagal.");
}
}
?>
Sekarang pengujian sudah sepenuhnya otomatis. Berbeda dengan versi pertama kami, versi ini membuat pengujian sepenuhnya otomatis.
Tujuan penggunaan pengujian otomatis adalah untuk membuat kesalahan sesedikit mungkin. Meskipun kode Anda belum sempurna, dengan pengujian otomatis yang baik, Anda akan menemukan bahwa kesalahan akan berkurang secara signifikan. Pengujian otomatis memberi Anda keyakinan bahwa kode Anda adil. Dengan kepercayaan diri ini, Anda dapat membuat lompatan berani dalam desain, bermitra lebih baik dengan tim Anda, meningkatkan hubungan antara Anda dan pelanggan, dan tidur nyenyak setiap hari karena Anda dapat membuktikan bahwa sistem menjadi lebih baik berkat upaya Anda.