นี่คือเฟรมเวิร์กการทดสอบเชิงเอกสารสำหรับตั้งแต่ 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
รหัสตัวอย่างนี้ใช้งานไม่ได้ คาดว่าคำว่า "แครอล" จะเป็นผลลัพธ์ แต่ไม่ปรากฏ กรณีทดสอบนี้ล้มเหลว แต่คุณสามารถทราบได้ว่าโค้ดตัวอย่างมีปัญหาและคุณสามารถแก้ไขได้
Livexample ทำตามขั้นตอนต่อไปนี้:
Output
ในโค้ดตัวอย่างโดยการแยกวิเคราะห์บางครั้งโค้ดตัวอย่างใช้งานไม่ได้ เช่น เพิ่มฟีเจอร์ใหม่ ลืมอัปเดต ดึงคำขอที่ไม่ดูแลโค้ดตัวอย่าง และอื่นๆ
รหัสตัวอย่างที่ใช้งานไม่ได้ถือเป็นประสบการณ์ที่ไม่ดีสำหรับผู้ใช้ห้องสมุด
เมื่อใช้ Livexample คุณจะได้รับสิทธิประโยชน์:
ติดตั้ง suin/livexample
ผ่าน Composer:
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 ยังคงสนับสนุน PHP 5.3 ต่อไปแม้ในปี 2017 สภาพแวดล้อม PHP แบบเก่ายังคงอยู่ในบริการที่ทำงานอยู่ในปัจจุบัน Livexample ยังควรใช้สำหรับการปรับโครงสร้างสภาพแวดล้อมแบบเก่าดังกล่าวอีกด้วย
โปรดดู CHANGELOG สำหรับรายละเอียดเพิ่มเติม
โปรดดูการมีส่วนร่วมสำหรับรายละเอียดเพิ่มเติม โปรดแก้ไขภาษาอังกฤษของฉัน