Hier ist mein UsersController Testfall:
<?php
App::uses('UsersController', 'Controller');
class TestUsersController extends UsersController {
public $autoRender = false;
public function redirect($url, $status = null, $exit = true) {
$this->redirectUrl = $url;
}
public function render($action = null, $layout = null, $file = null) {
$this->renderedAction = $action;
}
public function _stop($status = 0) {
$this->stopped = $status;
}
}
class UsersControllerTestCase extends ControllerTestCase {
public $fixtures = array('app.user');
public function setUp() {
parent::setUp();
$this->Users = new TestUsersController();
$this->Users->constructClasses();
}
public function tearDown() {
unset($this->Users);
parent::tearDown();
}
public function testAdminSearchStudents() {
$data = array('User' => array('search' => 'Ipsum'));
$result = $this->testAction('/admin', array('return' => 'vars', 'method' => 'post', 'data' => $data));
$this->assertCount(1, $result['users']);
}
}
Es gibt nichts Besonderes über meine UsersController, aber es verwendet die SecurityComponent (geerbt von AppController).
Und wenn ich die Tests durchführe, erhalte ich die berüchtigte:
Das Ersuchen wurde abgelehnt Testfall: UsersControllerTestCase(testAdminSearchStudents)
Ich denke, es ist, weil ich eine POST-Anfrage ohne das CSRF-Token und Verweis fälschen bin?
Was muss ich tun, damit das funktioniert? ohne die Komponente Sicherheit zu entfernen von meinem Controller?
Ich bin nicht sicher, ob das hilft, aber hier ist der wichtige Teil des Stacktrace:
/var/www/source/cakephp/lib/Cake/Controller/Component/SecurityComponent.php : 230
SecurityComponent::startup
/var/www/source/cakephp/lib/Cake/Utility/ObjectCollection.php : 130
ObjectCollection::trigger
/var/www/source/cakephp/lib/Cake/Event/CakeEventManager.php : 246
/var/www/source/cakephp/lib/Cake/Controller/Controller.php : 671
/var/www/source/cakephp/lib/Cake/Routing/Dispatcher.php : 183
/var/www/source/cakephp/lib/Cake/Routing/Dispatcher.php : 161
/var/www/source/cakephp/lib/Cake/TestSuite/ControllerTestCase.php : 271
ControllerTestCase::_testAction
/var/www/source/cakephp/lib/Cake/TestSuite/ControllerTestCase.php : 189
Mit freundlichen Grüßen