我正在 PHP 中创建一个简单的 RESTful API 以供练习。我正在尝试编写尽可能可测试的代码。看了很多教程,看了一些视频,我仍然对如何设计这个感到茫然。
基本上,我已经建立了一个路由器类。它负责将 url 路径映射到控制器方法。
添加路由后很容易测试路由器的状态。
但是,我如何测试是否在 response() 中调用了正确的 class->function(params)?
我正在使用 PHPUnit,并且一直在阅读有关模拟的内容。我不知道如何在这种情况下使用它们。
目前,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);