이는 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은 이러한 오래된 환경을 리팩토링하는 데에도 사용될 것으로 예상됩니다.
자세한 내용은 변경 로그를 참조하세요.
자세한 내용은 기여를 참조하세요. 내 영어를 고쳐주세요.