Cake3:Controller TestCase是黑洞的

时间:2015-07-12 20:03:11

标签: phpunit cakephp-3.0 csrf-protection

当我在Cake3中使用安全组件时,我总是收到错误消息:" 请求已被黑洞"在我的控制器测试中。它按预期工作,因为在这种情况下请求真的是黑洞,但我还是有可能测试我的代码。

我在Cake2中找到了关于同一问题的以下post。不幸的是我无法将它转移到Cake3,也许它不可能在这里使用相同的方法。

这是我的测试用例的样子:

        $data = [
        'first_name' => 'Test First Name',
        'last_name' => 'Test Last Name',
        'gender' => Gender::MALE,
        'role_id' => Role::ADMIN,
        'email' => 'test@test.com',
        'password' => '',
        'status' => Status::ACTIVE,
        'birthday' => '2015-01-01',
    ];
    $this->post(['prefix' => 'admin', 'controller' => 'users', 'action' => 'edit', 1], $data);

同样的问题也出现在Csrf组件中,但解决方案应该非常相似,所以我会在之后解决这个问题。

1 个答案:

答案 0 :(得分:0)

您的测试必须扩展IntegrationTestCase,然后在执行您可以使用的帖子之前:

    $this->enableCsrfToken();
    $this->enableSecurityToken();