我正在尝试使用代码编写一个控制器函数的API测试用例,我遇到的问题是,到控制器函数的路径似乎没有被正确评估,并且评估似乎根据我的不同而不同在我的测试用例中.
以下是我的测试用例中的代码示例:
use \ApiTester;
class CustomerRegisterCest
{
// tests
public function testGetRegister(ApiTester $I)
{
$I->sendGET('register');
$I->seeResponseCodeIs(200);
}
public function testPostRegister(ApiTester $I)
{
$I->sendPOST('register', [
// set the data in here
]);
$I->seeResponseCodeIs(200);
}
Run Code Online (Sandbox Code Playgroud)
我有一个包含这些路由的routes.php文件:
Route::get('/', ['as' => 'home', 'uses' => 'HomeController@getIndex']);
Route::get('register', ['as' => 'getRegister', 'uses' =>'RegistrationController@getRegister']);
Route::post('register', ['as' => 'postRegister', 'uses' => 'RegistrationController@postRegister']);
Run Code Online (Sandbox Code Playgroud)
我已经将一些调试语句插入到我的控制器类中,以便我可以看到运行的路由,如下所示:
Log::debug('GET register'); // or GET index or POST register, etc
Run Code Online (Sandbox Code Playgroud)
目前我已经从控制器类中删除了所有内容,因此只包含调试语句.
当我像上面那样运行测试用例时,我得到以下调试输出:
GET register
GET index
Run Code Online (Sandbox Code Playgroud)
...所以似乎sendPOST('register',...)实际上路由到"/"的GET路由而不是"/ register"的POST路由.在测试用例之外一切正常 - 我可以POST到寄存器路由正常,路由似乎工作正常,问题只出现在一个代码测试案例中.
如果我更改测试用例,以便我在同一个函数调用中执行sendGET和sendPOST,例如:
// tests
public function …
Run Code Online (Sandbox Code Playgroud) 我正在寻找关于HTTP请求的身份验证和签名(完整性检查)的最佳实践的一些指导/意见.我对于使用的语言和技术相当开放,但基本参数和要求如下:
我们考虑过的事情:
如果某些管理员决定将此标记为重复,那么我认为其他Q不能完全解决此问题的全部范围: