PHP에서 데이터베이스 기반 코드의 단위 테스트를 쉽게 만들어주는 라이브러리입니다. 네이티브 PDO 클래스를 모의하고, 쿼리 결과를 정의하고, 실행된 문을 검사합니다.
"[소방에서] 하나의 라인을 두 개의 배출구로 나누는 데 사용되는 호스 장치. 종종 게이트형 Y형을 사용하여 두 개의 별도 배출구를 통해 물의 흐름을 허용하거나 허용하지 않습니다." - https://en.wikipedia.org/wiki/Glossary_of_firefighting_equipment#Wye
Wye는 Packagist에 등록되어 있으며 Composer와 함께 설치할 수 있습니다. 명령줄에서 다음을 실행합니다.
composer require --dev stratedge/wye
Wye가 프로젝트에 포함되면 Composer의 자동 로더가 필요한지 확인하십시오.
require_once ' vendor/autoload.php ' ;
use Stratedge Wye Wye ;
//In test setup
//-------------
//Reset the Wye to its clean state
Wye::reset()
//Create a Wye PDO object
$ pdo = Wye:: makePDO ();
//Inject PDO into database layer
Database:: setConnection ( $ pdo );
//In test
//-------
//Create a Result object
$ result = Wye:: makeResult ();
//Add a row or two to return
$ result -> addRow ([ ' type ' => ' Pumper ' , ' apparatus ' => ' Engine 1 ' ]);
//Attach Result to Wye to be served when a query is executed
$ result -> attach ();
//Run code to test
$ class_to_test -> doSomething ();
//Inspect execution
$ stmt = Wye:: getStatementAtIndex ( 0 );
$ this -> assertStringStartsWith ( ' SELECT ' , $ stmt -> getStatement ());
$ this ->assertCount( 2 , count ( $ stmt -> getBindings ());
$ this -> assertSame ( ' id ' , $ stmt -> getBindings ()-> first ()-> getParameter ());
$ this -> assertSame ( 1 , Wye:: getNumQueries ());
//and more!
잠깐만요, 더 있어요
Wye의 사용법을 더 자세히 살펴보려면 광범위한 문서, 특히 기본 사용법 섹션을 확인하세요.
전체 최신 문서는 Wiki에서 확인할 수 있습니다.
논의되는 주요 주제로는 소개, 결과 정의, 실행 정보 검사 및 바인딩 검사가 있습니다.
개선 사항 및 구현 목록은 위키의 Todo 및 로드맵 페이지에서 확인할 수 있습니다.
Wye에서 문제를 발견하고 이를 고칠 수 있다고 생각한다면 꼭 그렇게 하십시오. Pull 요청은 기꺼이 받아들여집니다. 문제를 해결할 시간이나 에너지가 없다면 제가 살펴볼 수 있도록 가능한 한 자세히 문제를 기록해 주시기 바랍니다.
문제는 Github 문제 추적기에 기록될 수 있습니다.
Wye는 내 친구이자 동료인 Josh가 구현한 것을 처음 본 아이디어를 바탕으로 구축되었습니다.