Ich habe eine Anwendung, die hinter einem Login ist und nutzt zend_acl und zend_auth.PHP Unit Testing mit Zend Auth und Zend ACL
Während des Vorversands habe ich ein ACL-Plugin, das alle Regeln für die ACL erstellt. Ich habe auch ein Auth-Plugin, das prüft, ob Sie eingeloggt sind oder nicht und wenn dies der Fall ist, wenn Sie Zugriff auf die angeforderte Ressource gemäß der ACL haben.
Da die Anwendung ist vollständig hinter einem Login die ACL nur erstellt, wenn Sie angemeldet sind.
Unit-Tests dies nicht möglich zu sein scheint, oder eher wahrscheinlich Ich bin fehlt etwas offensichtlich.
In meiner Unit-Test-Setup-Methode simuliere ich eine erfolgreiche Anmeldung, die eine zend_auth-Instanz zurückgibt. Tests, die bestanden haben, zeigen an, dass diese Anmeldung erfolgreich war.
Wenn ich dann aber durch Tests versuche, an einen anderen Ort zu versenden oder zu bewerten, ob der eingeloggte Benutzer Zugriff auf eine bestimmte Ressource hat, wird er vom Plugin immer abgelehnt, da sie noch nicht eingeloggt sind sicher, warum das ist, kann jemand beraten?
Zum Beispiel dies passiert:
public function testLoggedIn()
{
$this->assertTrue(Zend_Auth::getInstance()->hasIdentity());
}
Dies schlägt fehl, da es vom Plugin abgelehnt hat:
public function testUserAccess()
{
$this->dispatch('/home');
$this->assertResponseCode(200);
$this->assertQueryContentContains('#nav_side');
$this->resetRequest()
->resetResponse();
}
dies, ich habe immer noch zu sein scheint Umleitung zurück auf die Login-Seite als den Plugins gefunden weiß nicht, der Benutzer ist angemeldet.
Jede Hilfe sehr geschätzt.
Ja - danke das scheint das Problem zu sein. –