मैं सिम्फनी 2, सिद्धांत और मोंगोडीबी के साथ परीक्षणों का एक सेट सुरक्षित बनाने की कोशिश कर रहा हूं।सिम्फनी 2 सिद्धांत मोंगोडीबी रोलबैक
मुझे परीक्षण करने के दौरान बहुत सारे फिक्स्चर लोड करना है, और इसे समाप्त होने के बाद उन्हें अनलोड करना है। मैंने इसे लेनदेन के साथ करने का विचार किया, लेकिन ... मुझे डॉक्टरेट और मोंगो के साथ इसे कैसे करना है, इस पर दस्तावेज़ नहीं मिला!
मुझे ओआरएम के साथ लेनदेन करने के तरीके के बारे में सिद्धांत दस्तावेज़ों में good documentation मिला, लेकिन ओडीएम के संबंध में नहीं।
तो मैं सिद्धांत-मोंगो द्वारा भी इस्तेमाल किया source code of the Connection.php
वर्ग पर एक नज़र लिया और मैं नहीं मिला है beginTransaction
, commit
और rollback
तरीकों कि dbal version उपयोग करता है।
मुझे नहीं पता था, तो मैंने पूछा कि अपने आप को "यह और भी MongoDB में रोलबैक करना संभव है?", और जवाब अगर MongoDB FAQ में पाया गया था:
MongoDB के साथ पारंपरिक ताला या जटिल लेनदेन का उपयोग नहीं करता
रोलबैक :(तो मुझे लगता है कि यही वजह है कि वहाँ कोई beginTransaction
या जो भी ODM में है कि है ...
लेकिन मेरी समस्या बनी हुई है: मैं कैसे कर सकते हैं imple मेरे परीक्षणों के लिए रोलबैक का एक प्रकार बताओ?
मुझे अभी प्राप्त एकमात्र विचार है कि मैन्युअल रूप से मेरे द्वारा लोड किए गए दस्तावेज़ के सभी आईडी प्राप्त करें और फिर उन्हें tearDown()
में हटा दें। लेकिन, अच्छा ... यह थोड़े बेकार है, है ना?
अन्य विचार ??
संपादित करें: इस सवाल का मेरा पहला टिप्पणी के बाद, तथ्य यह है कि मैं परीक्षण और विकास में एक ही डीबी करना चाहते हैं के बारे में, मैंने सोचा: क्यों एक अलग परीक्षण डेटाबेस का उपयोग नहीं करते, जहां परीक्षण शुरू होने पर विकास डेटाबेस की प्रतिलिपि बनाई जाती है, और इसे हल्के दिल से गिराया जा सकता है?
क्या यह एक बेहतर विचार हो सकता है? यह वास्तव में मेरे लिए आसान और अधिक सुरक्षित दिखता है। आप लोग क्या सोचते हैं?
धन्यवाद :)
मैं यह कहना भूल गया कि मैं विकास और परीक्षण के लिए दो अलग-अलग डीबी का उपयोग नहीं कर रहा हूं, इसलिए एक सामान्य 'आंसू डाउन()' जो सबकुछ छोड़ देता है मेरे लिए कोई समाधान नहीं है ... – mokagio