livexample
Initial release
這是一個面向文件的測試框架,適用於 PHP 5.3 到 7.x。其目的是確保您的範例程式碼通過單元測試正常運作。受到 Golang 測試“示例”的啟發。
請參閱下面的範例。第一部分是將要測試的範例程式碼。以Output
開頭的註解是測試程式碼。
<?php
function hello ( string $ name ): string {
return ' hello ' . $ name ;
}
echo hello ( ' alice ' ) . "n" ;
echo hello ( ' bob ' ) . "n" ;
// Output:
// hello alice
// hello carol
此範例程式碼已損壞。預期會輸出“carol”一詞,但它沒有出現。該測試案例失敗了,但是您可以知道範例程式碼有問題並且可以修復它。
Livexample 執行下列步驟:
Output
語句。有時,範例程式碼會被破壞,例如添加新功能、忘記更新它們、拉取請求不處理範例程式碼等等。
損壞的範例程式碼對於圖書館使用者來說是糟糕的體驗。
透過使用 Livexample,您將獲得以下好處:
透過 Composer 安裝suin/livexample
:
composer require --dev suin/livexample
將ExampleTest.php
新增到您的測試目錄:
use Livexample PHPUnit ExampleTestCase ;
class ExampleTest extends ExampleTestCase
{
public function exampleFiles ()
{
// specify your example code directory.
return self :: exampleDirectory ( ' example ' );
}
}
運行 phpunit:
phpunit
斷言有兩種語法:
// 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)
var_dump()
函數列印物件標識符,即類別名稱旁邊的#some-number
。由於識別碼取決於執行環境,因此您無法在Output:
語句中對其進行硬編碼。您可以使用佔位符%d
來代替對標識符進行硬編碼:
<?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
官方對 PHP 5.3 的支援已經結束,但 RHEL/CentOS 在 2017 年仍然繼續支援 PHP 5.3。舊的 PHP 環境仍然保留在今天的運行服務中。 Livexample 也應該用於重構這類舊環境。
請參閱變更日誌以了解更多詳細資訊。
請參閱貢獻以了解更多詳細資訊。請修正我的英文。