Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phpunit Cake3:控制器测试用例是黑色的_Phpunit_Cakephp 3.0_Csrf Protection - Fatal编程技术网

Phpunit Cake3:控制器测试用例是黑色的

Phpunit Cake3:控制器测试用例是黑色的,phpunit,cakephp-3.0,csrf-protection,Phpunit,Cakephp 3.0,Csrf Protection,当我在Cake3中使用安全组件时,我总是在控制器测试中收到错误消息:“请求已被黑洞”。它可以像预期的那样工作,因为在这种情况下,请求实际上是一个黑洞,但我需要一种可能性来测试我的代码 我发现了以下关于同一问题的内容,但都是Cake2。不幸的是,我无法将其转移到Cake3,并且可能无法在这里使用相同的方法 以下是我的测试用例的外观: $data = [ 'first_name' => 'Test First Name', 'last_name'

当我在Cake3中使用安全组件时,我总是在控制器测试中收到错误消息:“请求已被黑洞”。它可以像预期的那样工作,因为在这种情况下,请求实际上是一个黑洞,但我需要一种可能性来测试我的代码

我发现了以下关于同一问题的内容,但都是Cake2。不幸的是,我无法将其转移到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组件上,但解决方案应该非常相似,因此我将在以后解决这个问题。

您的测试必须扩展IntegrationTestCase,在完成本文之前,您可以使用:

    $this->enableCsrfToken();
    $this->enableSecurityToken();
可能的副本也请参见