アプリケーションで authentication
ミドルウェアがアクティブな状態であれば、
統合テストで認証情報をシミュレートする必要があります。
使用している認証の種類に応じて、クレデンシャルを異なる方法でシミュレートする必要があります。
認証の一般的なタイプをいくつか確認してみましょう。
セッションベースの認証では、通常セッションで見つかるであろうユーザデータをシミュレートする必要があります。 テストケースでは、「ログイン」するためのヘルパーメソッドを定義することができます。:
protected function login($userId = 1)
{
$users = TableRegistry::getTableLocator()->get('Users');
$user = $users->get($userId);
$this->session(['Auth' => $user]);
}
統合テストでは login()
を使ってユーザがログインしたときのシミュレーションをすることができます。:
public function testGet()
{
$this->login();
$this->get('/bookmarks/1');
$this->assertResponseOk();
}
トークンベースの認証では Authorization
ヘッダーをシミュレートする必要があります。
有効なトークンを取得した後、リクエスト:
public function testGet()
{
$token = $this->getToken();
$this->configRequest([
'headers' => ['Authorization' => 'Bearer ' . $token]
]);
$this->get('/api/bookmarks');
$this->assertResponseOk();
}