如何为 Cakephp 3 PHPunit 测试创建 CSRF 令牌?

How to create CSRF token for Cakephp 3 PHPunit testing?

在我的 CakePHP 3 应用程序中启用 CSRF 令牌和 SSL 后,我试图让我的单元测试再次工作。

如何为如下测试创建或生成令牌?或者我只是为了测试目的而禁用它?

public function testLogin() {
    $this->get('/login');
    $this->assertResponseOk();

    $data = [
        'email' => 'info@example.com',
        'password' => 'secret'
    ];
    $this->post('/login', $data);

    $this->assertResponseSuccess();
    $this->assertRedirect(['controller' => 'Users', 'action' => 'dashboard']);
}

官方文档has good approach since version 3.1.2.

您只需在 post 之前调用 $this->enableCsrfToken(); and/or $this->enableSecurityToken(); 即可使用令牌成功执行请求。

如官方示例所示:

public function testAdd()
{
    $this->enableCsrfToken();
    $this->enableSecurityToken();
    $this->post('/posts/add', ['title' => 'Exciting news!']);
}