Je suis toujours un newb à phpunit alors j'espère être en train de l'expliquer correctement. J'essaye d'exécuter un test de contrôleur avec PHPUnit, cependant le plugin qui utilise Zend_Auth redirige vers le login. Comment créer les données de raccord? J'ai essayé de le placer dans mon setUp mais Zend_Auth semble être réinstancié après setUp. Merci pour toute aideComment stub données pour PHPUnit avec plugin en utilisant Zend_Auth qui redirige sur l'authentification échouée
1
A
Répondre
1
Vous avez juste à vous authentifier dans votre testcase manuellement. Dites, si vous avez un My_Auth_Adapter de classe personnalisée qui implémente Zend_Auth_Adapter_Interface, vous pouvez faire quelque chose comme ceci:
// authentication - you can place it in setUp() method if you want
$adapter = new My_Auth_Adapter('someusername', 'somepassword');
Zend_Auth::getInstance()->authenticate($adapter);
// checking if it's successful
$this->assertTrue(Zend_Auth::getInstance()->hasIdentity());
// testing your controller code
$this->dispatch('/some/url');
$this->assertController('some');
$this->assertAction('url');
$this->assertXpath(/*some element on your page*/);
// and so on
1
J'aime comment Wallgate utilisé un adaptateur personnalisé préremplir la connexion. Je vais essayer ça plus tard. En ce moment, je l'utilise.
// login as a valid user
$this->request
->setMethod('POST')
->setPost(array(
'username' => 'foobar',
'password' => 'foobar'
));
$this->dispatch('/user/login');
// to make another request, we need to reset both request and response
$this->resetRequest();
$this->resetResponse();
$this->dispatch('user/contactdetail');
La dernière ligne génère une page de connexion réussie.