연습을 위해 PHP에서 간단한 RESTful API를 만들고 있습니다. 가능한 한 테스트 가능한 코드로 작성하려고합니다. 많은 자습서를 읽고 몇 개의 비디오를 본 후에도 여전히 이것을 디자인하는 방법에 대한 손실이 있습니다.함수가 호출되었는지 테스트하는 방법은 무엇입니까? 의존성 주입?
기본적으로 라우터 클래스를 설정했습니다. 그것은 URL 경로를 컨트롤러 메소드에 매핑하는 역할을합니다.
경로를 추가 한 후 라우터 상태를 쉽게 테스트 할 수 있습니다.
하지만 respond()에서 적절한 클래스 -> 함수 (params)가 호출되었는지 어떻게 테스트 할 수 있습니까?
저는 PHPUnit을 사용하고 있으며, mock에 관해 읽었습니다. 이 컨텍스트에서 어떻게 사용하는지 모르겠습니다.
현재 respond()는 주어진 경로를 파싱하고 메소드를 요청하고 매핑 된 메소드를 호출합니다.
의견이 지적했듯이private $routes;
public function __construct() {
$routes = array();
}
/**
* Gets all current routes
*/
public function getRoutes();
/**
* Sets all routes
*/
public function setRoutes($routes);
/**
* Routes GET request
*/
public function get();
/**
* Routes POST request
*/
public function post();
/**
* Routes PUT request
*/
public function put();
/**
* Routes DELETE request
*/
public function delete();
/**
* Sets up default paths for a given resource
*/
public function resource();
/**
* Respond to request
* @return mixed JSON of resource data
*/
public function respond($req_method, $request);
/**
* Returns mapped call info from request method and path
* @return mixed An array of the call and params
*/
private function parse($req_method, $request);
당신이 인스턴스 및 와이어 그것이 TestSpy를 호출을 만들 수 없습니다 컨트롤러 메소드 (호출 된 레코드) 테스트에서 요청 URL을 보낸 다음 올바른 메서드가 호출되면 TestSpy Controller를 검사 할 수 있습니다. – Gishu
테스트 할 메서드 코드를 표시 할 수 있습니까? 정말 귀하의 질문에 대답하는 것이 더 간단합니다 :) 건배! – Cyprian
일반적으로 테스트를 마칠 때까지 코드를 작성하지 않습니다. 나는 _design_ 질문을하고있다. –