我正在为使用Zend Framework制作的当前项目编写测试.一切都很好,但我在测试已记录的用户操作/控制器时遇到问题:我需要登录才能执行操作/控制器.
如何登录PHPUnit?
正如您所说,您想要测试操作/控制器,我想您不是在编写单元测试,而是在编写功能/集成测试 - 即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令牌,填充表单并发布.
然后,我可以测试我是否已连接.
有了这个,您可以提取登录部分,在每个需要有效用户登录的测试之前调用它.