के लिए यूनिट परीक्षण मैं केवल ज़ेंड के साथ PHPUnit का उपयोग शुरू कर रहा हूं और यह पता लगाने में थोड़ा मदद चाहिए कि इन परीक्षणों को कैसे काम करना चाहिए।ज़ेंड 2: फॉर्म क्लास
मैं परीक्षण करना चाहता हूं कि अगर कोई पोस्ट पैरामीटर पास नहीं करता है तो फॉर्म कोई त्रुटि संदेश लौटाता है या नहीं।
समस्या यह है कि मेरी फार्म से एक क्षेत्र सिद्धांत के DoctrineModule\Form\Element\ObjectSelect
...
$this->add(array(
'type' => 'DoctrineModule\Form\Element\ObjectSelect',
'name' => 'user',
'attributes' => array(
'id' => 'user-label',
),
'options' => array(
'object_manager' => $em,
'target_class' => 'Application\Entity\User',
'property' => 'username',
'label' => 'User:',
'display_empty_item' => true,
'empty_item_label' => '---',
'label_generator' => function($entity) {
return $entity->getUsername();
},
),
));
...
मैं निम्नलिखित मिल त्रुटि उपयोग कर रहा है:
Fatal error: Call to a member function getIdentifierFieldNames() on null
मेरी नक़ल वस्तु के साथ इस क्षेत्र को ओवरराइड करने की कोशिश की, फिर भी Zend नहीं करता ' type
में, बस वर्ग का नाम (string
), इसलिए यह कोड काम नहीं करता है:
public function testIfFormIsValid()
{
$objectSelect = $this->getMockBuilder('DoctrineModule\Form\Element\ObjectSelect')
->disableOriginalConstructor()
->getMock();
$objectSelect->expects($this->any())
->method('getValueOptions')
->will($this->returnValue(array()));
$form = new \AppModuleComment\Form\Comment('form', array(
'em' => $this->em // Mocked object
));
$form->add(array(
'type' => $objectSelect,
'name' => 'user',
'attributes' => array(
'id' => 'user-label',
),
'options' => array(
'object_manager' => $this->em,
'target_class' => 'Application\Entity\User',
'property' => 'username',
'label' => 'User:',
'display_empty_item' => true,
'empty_item_label' => '---',
'label_generator' => function($entity) {
return $entity->getUsername();
},
),
));
$data = array(
'id' => null,
'user' => null
);
$form->setData($data);
$this->assertTrue($form->isValid(), 'Form is not valid');
}
मैं क्या गलत कर रहा हूं? मुझे ऐसे कोड का परीक्षण कैसे करना चाहिए?
तो .. मुझे कैसे परीक्षण करना चाहिए यदि फॉर्म खाली फॉर्म जमा करता है तो फॉर्म सत्यापन सत्यापन देता है? या यदि उपयोगकर्ता सही डेटा प्रदान करता है तो फॉर्म मान्य है? मुझे इस – user1409508
का परीक्षण करने के लिए डॉक्टर की कार्यक्षमता की आवश्यकता है ऐसा लगता है कि आपको इकाई परीक्षण लिखने के लिए और अधिक अभ्यास की आवश्यकता है। सबसे पहले: आप अपने यूनिट टेस्ट के अंदर कोड नहीं लिखते - इसके बजाय आप अपना कोड चलाते हैं। मैं नियंत्रकों का परीक्षण करने से पहले आसान इकाइयों के साथ खेलना चाहता हूं जो इकाई प्रबंधकों का उपयोग करने वाले रूपों को उत्पन्न करते हैं। आपको यह सुनिश्चित करना चाहिए कि आपकी इकाई क्या है जिसे आप परीक्षण करना चाहते हैं और यदि आप परीक्षण युगल का उपयोग करना चाहते हैं या एक निश्चित डेटासेट और अन्य हैं। – iRaS
शायद आप सही हैं मुझे परीक्षण लिखने के लिए और अधिक अभ्यास की आवश्यकता है। लेकिन आपने यह नहीं समझाया कि मैं सिद्धांतों और इनपुट का परीक्षण कैसे कर सकता हूं सिद्धांतों से जुड़े फ़िल्टर। मैं परीक्षण करना चाहता हूं कि जब उपयोगकर्ता खाली फॉर्म भेजता है या वह कुछ इनपुट छोड़ देता है तो मुझे सत्यापन संदेश प्राप्त होंगे। मेरे परीक्षणों में कोड लिखने का कारण यह है कि मैं यह दिखाना चाहता था कि मैंने इसे सिद्धांत के साथ काम करने के लिए क्या करने की कोशिश की – user1409508