İstisna phpunit ile test değil?

0 Cevap php

Zend Framework uygulamasını test etmek phpunit ile bazı birim testi yazıyorum ve changepassword işlevi bir istisna test ile bazı sorunlar var. "($ Tr-> çevirmek ('userOldPasswordIncorrect')) throw new Exception;" sınama başarısız, ama html üretir kapsama aracı değil hat test değildir.

public function changePassword(array $data, $id)
{
    $user = $this->_em->find('Entities\User', (int) $id);

    $oldPassword = sha1(self::$_salt . $data['oldPassword']);
    if ($user->getPassword() !== $oldPassword) {
        $tr = PC_Translate_MySQL::getInstance();
        throw new Exception($tr->translate('userOldPasswordIncorrect'));
    }

    $user->setPassword(sha1(self::$_salt . $data['password']));

    $this->_em->persist($user);
    $this->_em->flush();
}

Özel test etmelisiniz birim testi:

/**
 * @depends testFindByAuth
 * @expectedException Exception
 */
public function testChangePasswordWrongOldPassword()
{
    $this->_dummyUser = $this->_user->findByAuth($this->_dummyEmail, $this->_dummyPassword, $this->_reseller);

    // Try to change the password with a wrong oldPassword
    $data['oldPassword'] = 'wrongOldPassword';
    $data['password'] = $this->_dummyNewPassword;

    $this->_user->changePassword($data, $this->_dummyUser->getId());
}

Biri ben yanlış yapıyorum bana ne söyleyebilirsin umuyoruz.

Update

Sorun PC_Translate_MySQL :: getInstance () yöntemi içinde idi. Bir istisna var atıldı. Ve ben bu tabii geçti genel bir durum alma üzerinde test gibi. Çözüm ChangePassword yöntemi genel bir Exception kullanmayın.

0 Cevap