2012-02-08 14 views
9

के साथ परीक्षण के लिए अस्थायी सिद्धांत 2 फिक्स्चर मेरे पास सिम्फनी 2 + डॉक्टर 2 पर बनाया गया एक एप्लीकेशन है जिसे मैं कुछ परीक्षण (phpunit का उपयोग करके) बनाना चाहता हूं।phpunit

उदाहरण के लिए यदि मैं डीबी में एक रिकॉर्ड के खिलाफ अद्वितीय सत्यापनकर्ता का परीक्षण करना चाहता हूं, तो मैं एक रिकॉर्ड बनाना चाहता हूं जिसके साथ मैं काम कर सकता हूं, लेकिन परीक्षण के बाद मुझे इसकी आवश्यकता नहीं है। तो अस्थायी (या वर्चुअल) फिक्स्चर बनाने का कोई तरीका है या क्या मुझे मैन्युअल रूप से उन्हें बनाना और हटाना है?

उत्तर

20

आप Doctrine DataFixture का उपयोग करें और एक इकाई परीक्षण वर्ग के अपने स्थापना विधि में इस कोड डाल सकते हैं:

$loader = new Doctrine\Common\DataFixtures\Loader; 
$loader->loadFromDirectory('/path/to/MyDataFixtures'); 
$purger = new Doctrine\Common\DataFixtures\Purger\ORMPurger($em); 
$executor = new Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger); 
$executor->execute($loader->getFixtures()); 

आप कैसे DataFixture कक्षाएं बनाने को देखने के लिए डॉक्स का उल्लेख कर सकते। Symfony 2 + Doctrine 2 + PHPUnit 3.5: Serialization of closure exception

पुनश्च::

यहाँ यह कैसे करना है की एक अच्छा उदाहरण है मुझे लगता है आप इस उदाहरण में एक काम $ उन्हें (EntityManager) है।

+2

या, $ लोडर = नया \ Symfony \ Bridge \ Doctrine \ DataFixtures \ ContainerAwareLoader (स्थिर :: $ कर्नेल-> getContainer()); यदि आपको एक स्थिरता का उपयोग करने की आवश्यकता है जो ContainerAwareInterface लागू करता है। इसके अलावा, धन्यवाद! बस इस जवाब का इस्तेमाल किया। – skqr

+0

क्या PRMPurger को इसकी शुरुआत के लिए वास्तव में $ em की आवश्यकता है? – Tjorriemorrie

+0

src निर्देशिकाओं से सभी फिक्स्चर लोड करने का सबसे अच्छा तरीका क्या है? –

 संबंधित मुद्दे