当我在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组件中,但解决方案应该非常相似,所以我会在之后解决这个问题。
答案 0 :(得分:0)
您的测试必须扩展IntegrationTestCase,然后在执行您可以使用的帖子之前:
$this->enableCsrfToken();
$this->enableSecurityToken();