क्या कोई समझा सकता है कि एकीकरण परीक्षण के लिए @magentoDbIsolation एनोटेशन क्या करता है?


9

कोर मॉड्यूल के लिए लिखे गए एकीकरण परीक्षणों के माध्यम से, मुझे लगता है कि एनोटेशन के कई उदाहरण @magentoDbIsolation enabledपरीक्षण कार्यों के ऊपर दिखाई देते हैं।

एमटीएफ प्रलेखन में कहीं भी इसका कोई उल्लेख नहीं है, और यहां तक ​​कि देखने के बाद Magento\TestFramework\Annotation\DbIsolationभी मैं अभी भी इसके उद्देश्य के रूप में स्पष्ट नहीं हूं।

किसी को कुछ जानकारी प्रदान कर सकते हैं? धन्यवाद।

जवाबों:


17

यदि यह एनोटेशन निर्दिष्ट किया जाता है, तो परीक्षण से पहले डीबी लेनदेन शुरू किया जाएगा और इसके बाद वापस लुढ़का होगा। यदि कोई DB जुड़नार का उपयोग नहीं किया जाता है तो यह सहायक हो सकता है और परीक्षण में somethings को DB में सहेजा जाता है। ध्यान दें कि @magentoDataFixtureलेनदेन में परीक्षण को भी लपेटता है, इसलिए दोनों एनोटेशन का एक साथ उपयोग करने की आवश्यकता नहीं है।
और सिर्फ पूर्णता के लिए, निर्दिष्ट @magentoDbIsolation disabledकरना केवल उपयोगी है यदि @magentoDbIsolation enabledपरीक्षण वर्ग पर निर्दिष्ट किया गया था।


2

एनोटेशन @magentoDbIsolationका उपयोग एकीकरण परीक्षणों में किया जाता है ताकि परीक्षणों द्वारा किए गए DB संशोधनों को अलग किया जा सके। दूसरे शब्दों में यदि आप अपना परीक्षण चलाते हैं और db में कुछ बदलाव करते हैं और परीक्षण के दौरान आप इन आंकड़ों को db से दूसरे डेटा में अनुरोध करते हैं:

  • @magentoDbIsolation enabledआप के साथ कुछ भी नहीं मिलेगा, क्योंकि डेटा लेनदेन में अलग-थलग है।
  • साथ @magentoDbIsolation disabledआप डेटा मिलेगा, कारण डेटा अलग नहीं कर रहे हैं।
  • बिना किसी एनोटेशन एकीकरण परीक्षण के गैर-पृथक मोड में निष्पादित किया जाता है।

imho, db डेटा को बदलने के लिए एनोटेशन का उपयोग करना बेहतर है @magentoDataFixture, जो डिफ़ॉल्ट रूप से डेटा अलगाव का उपयोग करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.