测试CakePHP3RESTAPI
我正在使用CRUD插件和ADmad的JWT插件在CakePHP3上开发一个API。我通过导入模式,然后定义一些虚拟记录,为所有表创建了fixture。现在我想知道测试API的最佳方法 即:测试CakePHP3RESTAPI,api,testing,cakephp-3.0,jwt,Api,Testing,Cakephp 3.0,Jwt,我正在使用CRUD插件和ADmad的JWT插件在CakePHP3上开发一个API。我通过导入模式,然后定义一些虚拟记录,为所有表创建了fixture。现在我想知道测试API的最佳方法 即: 如何在测试中设置授权用户 如何在测试框架中调用API方法 目前我没有任何代码可显示,因为我真的不知道如何以正确的方式进行此操作。我看到的测试API端点的一种方法是使用IntegrationTestCase套件的post()方法。一个非常基本的例子: public function testLogin() {
目前我没有任何代码可显示,因为我真的不知道如何以正确的方式进行此操作。我看到的测试API端点的一种方法是使用IntegrationTestCase套件的
post()
方法。一个非常基本的例子:
public function testLogin()
{
// You can add this to the setUp() function to make it global
$this->configRequest([
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'x-www-form-urlencoded'
]
]);
$this->post('/auth/token', ['username' => $username, 'password' => $password]);
$this->assertResponseOk();
$this->assertResponseContains('access_token');
}
存储该访问令牌(或预生成令牌)&使用该令牌设置授权头
您可以这样发送授权令牌(在每次请求之前):
提示:您可以配置::write()
测试的bootstrap.php
中的Security.salt
值-这样密码salt工作!我还发现在您的设备中保存salt密码值很有帮助
更多详细信息,请参见。如何在测试中存储令牌?
$this->configRequest([
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'x-www-form-urlencoded',
'Authorization' => 'Bearer ' . $token
]
]);