Ini adalah kerangka pengujian berorientasi dokumentasi dari PHP 5.3 hingga 7.x. Tujuannya adalah memastikan kode contoh Anda berfungsi dengan pengujian unit. Terinspirasi oleh pengujian Golang "Contoh".
Lihat contoh di bawah ini. Bagian pertama adalah contoh kode yang akan diuji. Komentar yang dimulai dengan Output
adalah kode pengujian.
<?php
function hello ( string $ name ): string {
return ' hello ' . $ name ;
}
echo hello ( ' alice ' ) . "n" ;
echo hello ( ' bob ' ) . "n" ;
// Output:
// hello alice
// hello carol
Kode contoh ini rusak. Kata "carol" diharapkan sebagai keluaran, namun tidak muncul. Kasus uji ini gagal, tetapi Anda dapat mengetahui bahwa kode contoh memiliki masalah dan Anda dapat memperbaikinya.
Livexample melakukan langkah-langkah berikut:
Output
dalam kode contoh dengan menguraikannya.Terkadang kode contoh rusak, karena penambahan fitur baru, lupa memperbaruinya, pull-request yang tidak memperhatikan kode contoh dan sebagainya.
Kode contoh yang rusak adalah pengalaman buruk bagi pengguna perpustakaan.
Dengan menggunakan Livexample, Anda akan mendapatkan keuntungan:
Instal suin/livexample
melalui Komposer:
composer require --dev suin/livexample
Tambahkan ExampleTest.php
ke direktori tes Anda:
use Livexample PHPUnit ExampleTestCase ;
class ExampleTest extends ExampleTestCase
{
public function exampleFiles ()
{
// specify your example code directory.
return self :: exampleDirectory ( ' example ' );
}
}
Jalankan phpunit:
phpunit
Ada dua sintaks untuk pernyataan:
// Output: {expected output}
//=> {expected output}
echo 1 ; // Output: 1
echo " hello " ; //=> hello
var_dump ([ 1 , 2 , 3 ]);
// Output:
// array(3) {
// [0] =>
// int(1)
// [1] =>
// int(2)
// [2] =>
// int(3)
// }
var_dump($object)
Fungsi var_dump()
mencetak pengidentifikasi objek, yaitu #some-number
di sebelah nama kelas. Karena pengidentifikasi bergantung pada lingkungan eksekusi, Anda tidak dapat melakukan hard-code dalam pernyataan Output:
:. Daripada mengkodekan pengidentifikasi secara keras, Anda dapat menggunakan placeholder %d
untuk nomor:
<?php
var_dump ( new stdClass );
// Output:
// object(stdClass)#%d (0) {
// }
php
php -d auto_prepend_file=vendor/autoload.php
-d xdebug.overload_var_dump=0
example/simple-usage.php
Dukungan resmi untuk PHP 5.3 telah berakhir, namun RHEL/CentOS tetap mendukung PHP 5.3 bahkan pada tahun 2017. Lingkungan PHP lama masih tetap dalam layanan yang berjalan hingga saat ini. Livexample juga seharusnya digunakan untuk memfaktorkan ulang lingkungan lama tersebut.
Silakan lihat CHANGELOG untuk lebih jelasnya.
Silakan lihat KONTRIBUSI untuk lebih jelasnya. Tolong perbaiki bahasa Inggris saya.