Поскольку вы говорите, что хотите тестировать действия / контроллеры, я предполагаю, что вы пишете не модульные тесты, а функциональные / интеграционные тесты, т. Е. Работаете с Zend_Test
и тестируете через MVC.
Вот тест-функция, которую я использовал в проекте, где я тестирую, если вход в систему в порядке:
public function testLoggingInShouldBeOk()
{
$this->dispatch('/login/login');
$csrf = $this->_getLoginFormCSRF();
$this->resetResponse();
$this->request->setPost(array(
'login' => 'LOGIN',
'password' => 'PASSWORD',
'csrfLogin' => $csrf,
'ok' => 'Login',
));
$this->request->setMethod('POST');
$this->dispatch('/login/login');
$this->assertRedirectTo('/');
$this->assertTrue(Zend_Auth::getInstance()->hasIdentity());
}
Просто: я загружаю форму входа, извлекаю токен CSRF, заполняю форму и публикую ее.
Затем я могу проверить, подключен ли я.
При этом вы, вероятно, сможете извлечь часть для входа в систему, чтобы вызывать ее перед каждым из ваших тестов, требующих входа в систему действительного пользователя.