Zend framework2 使用phpunit在zf2中进行表单验证

Zend framework2 使用phpunit在zf2中进行表单验证,zend-framework2,phpunit,Zend Framework2,Phpunit,我正在尝试为用ZF2编写的表单post编写PHPunit测试。我想测试的动作如下: public function resetAction() { try { $resetForm = $this->getServiceLocator()->get('Login\Model\ResetForm'); $message = $errmessage = null; if ($this->getRequest()->isP

我正在尝试为用ZF2编写的表单post编写PHPunit测试。我想测试的动作如下:

public function resetAction() {
    try {
        $resetForm = $this->getServiceLocator()->get('Login\Model\ResetForm');
        $message = $errmessage = null;
        if ($this->getRequest()->isPost()) {
            $resetForm->setInputFilter($resetForm->getInputFilter());
            $resetForm->setData($this->getRequest()->getPost());
            if ($resetForm->isValid()) {
                $signInService = $this->getServiceLocator()->get('Login\Model\SignInService');
                /* Genereate a unique token to put to the tAccounts table to reset the password */
                $serverUrl = $this->getRequest()->getUri()->getScheme() . '://' . $this->getRequest()->getUri()->getHost();
                /* Complete the URL, this need to change */
                $serverUrl = $serverUrl . '/basezf2/public';
                /* Initiate the reset password send email notification process */
                if ($signInService->sendPasswordResetNotification($resetForm->getData(), $serverUrl)) {
                    $message = 'Email has been send with the password reset link';
                } else {
                    $errmessage = 'No account found for given email address';
                }
            }
        }
        return new ViewModel(array('resetForm' => $resetForm, 'message' => $message, 'errmessage' => $errmessage));
    } catch (\Exception $e) {
        $log = $this->getServiceLocator()->get('Error\Log');
        $log->log(Logger::ERR, $e->getMessage());
    }
}
我的测试如下

public function testresetActionPost() {
    date_default_timezone_set('US/Eastern');
    $this->dispatch('/login/reset', 'POST', array('email' => 'notEmail'));
    $this->assertResponseStatusCode(200);
}
正如您所看到的,我没有发送正确的电子邮件地址,当我通过web发送时,表单验证失败,并执行了它应该执行的所有操作。我怎样才能在考试中得到那份工作


我使用的是
Zf2
+
phpunit3.7

不清楚你的问题是什么。考试不及格吗?您不知道如何检测验证失败吗?你期望的是什么,发生的是什么?是的,我需要知道如何检测验证。你期望的是什么,发生的是什么?在这两种情况下,我都会得到200个响应(有效和无效电子邮件)。我想要的是,当我使用无效电子邮件尝试测试时,测试应该告诉我验证失败。当我使用UI和验证失败时,我从框架中获得正确的消息。