Zend Framework 1.8 + benim formları sınamak nasıl?

2 Cevap php

Yani this tutorial, benim denetleyicileri test edebilmek duyuyorum benim ZF 1.9.5 uygulama sayesinde test kurdum, şimdi bir form için bir test oluşturmak istiyorum. Ancak, PHPUnit benim formu bulamıyorum sorun yaşıyorum.

Fatal error: Class 'Default_Form_AccountProfile' not found

Bir denetleyicisi değil çünkü ben Zend_Test_PHPUnit_ControllerTestCase PHPUnit_Framework_TestCase yerine uzatıyorum. Doğru bir şey yapmak için mi? İşte benim test:

<?php

class AccountProfileTest extends PHPUnit_Framework_TestCase
{
    public function testPopulate()
    {
        $form = new Default_Form_AccountProfile();
        $user = array(
            'firstName' => 'Joe',
            'lastName' => 'Schmoe'
        );
        $form->populate($user);
        $this->assertEquals($form->getElement('firstName')->getValue(), 'Joe');
        $this->assertEquals($form->getElement('lastName')->getValue(), 'Schmoe');
    }
}

Ben yanlış ne yapıyorum? Ne Zend Framework bir formu sınamak için doğru yolu olurdu?

2 Cevap

Senin sorunun basit çözümü 'Require_oncenin' için form (... veya yeni Default_Form çağırmadan önce) bu dosyanın başında bulunan php dosyasıdır.

BTW, neden Zend_Form varsayılan davranışını test belirli bir nedeni var mı? Zend_Form testleri zaten yazılmış ve ZF tam sürümünü indirmek eğer onları alabilirsiniz. Kullandığınız biçimi varsa kendi, özel yöntemler var, ya da bu test etmek mantıklı daha Zend_Forms yöntemlerden bazılarını üzerine.Yapıyor.

Eğer application.ini bakarsanız, "appnamespace" belirten hattında bakmak varsayılan sizin Zend Framework iskeletini oluşturmak için Zend_Tool kullanıyorsanız eğer "Uygulama" için.

Gerçekleşmesi için bu hatayı önlemek için, bu ayarı "Varsayılan" olarak değiştirin ya da (bu özel durumda size "Application_Form_AccountProfile" içine "Default_Form_AccountProfile" yeniden adlandırmak anlamına gelir) Application_ * Tüm Default_ * sınıfları yeniden adlandırın.