हम परीक्षण डेटा उत्पन्न करने के लिए निर्माता पैटर्न का उपयोग कर रहे हैं। इन डोमेन ऑब्जेक्ट्स के बीच संबंध हैं। हमारे कार्यात्मक परीक्षणों को इन वस्तुओं को जारी रखने की आवश्यकता होती है।जटिल परीक्षण डेटा
domain model http://i34.tinypic.com/21mg1gn.png
अगर मैं सीआई के एक सादे उदाहरण करना aNew().c().build()
चाहते हैं मैं चाहता हूँ यह कायम किया जाना है मैं aNew().c().saveIn(session)
करते हैं मैं एक हैं:
इस मॉडल के बारे में सोचो एक ज्ञात बीआई के साथ सी का उदाहरण aNew().c().with(b).build()
ठीक है, आपको टी मिल गया वह विचार करता है। मेरी समस्या यह है कि, अगर मैं एक सी जारी रखना चाहता हूं, तो क्या यह बी को जारी रखना चाहिए? या इसे हाथ से पहले रखा जाना चाहिए? अगर मैं एक उचित डिफ़ॉल्ट बी चाहते हैं तो क्या होगा? अगर मैं डी को जारी रखना चाहता हूं तो क्या होगा? क्या यह सभी ए, बी, सी जारी रखना चाहिए?
बेशक वास्तविक प्रणाली अधिक जटिल है (कभी-कभी परिपत्र संदर्भों के साथ)। मैं जटिल परीक्षण डेटा जारी रखने के लिए एक सर्वोत्तम अभ्यास की तलाश में हूं।
संपादित करें: ऐसा लगता है कि मैंने भाषा बाधा में टक्कर लगी है, मेरी मां भाषा अंग्रेजी नहीं है, इसलिए मुझे अस्पष्टता के लिए खेद है।
- यह विरासत कोड है कि मैं
- परीक्षण करने के लिए मैं एक कवरेज परीक्षण, नहीं एक इकाई परीक्षण लिखने के लिए (एक परिणाम मैं कुछ भी मजाक नहीं किया जाएगा के रूप में) कोशिश कर रहा हूँ कोशिश कर रहा हूँ नहीं है: यहाँ और अधिक जानकारी है
- सॉफ़्टवेयर का टुकड़ा मैं कुछ परीक्षणों के लिए पॉप्युलेट होने पर कामों का परीक्षण करने की कोशिश कर रहा हूं (यह सभी इकाइयों का उपयोग नहीं करता है)।
पीएस। कृपया अधिक जानकारी मांगने में संकोच न करें, क्योंकि मैं संभव सर्वोत्तम अभ्यास खोजने के लिए संघर्ष कर रहा हूं। मेरे साथ सबसे नज़दीकी चीज है:
- किसी इकाई के निर्माण के दौरान स्पष्ट रूप से सेट किए गए सेट का ट्रैक रखें।
- मान लीजिए कि स्पष्ट रूप से सेट इकाइयां पहले से ही बने रहती हैं, उन्हें जारी न रखें।
- बाकी सब कुछ जारी रखें (अपने स्वयं के उत्थान के साथ)।
यह काम करेगा, लेकिन मेरी मकड़ी की भावना झुकाव है, मुझे लगता है कि मैं कुछ गलत कर रहा हूं क्योंकि परीक्षण कोड में तर्क शामिल होगा, परीक्षणों के बिना निपटने के लिए यह बहुत जटिल होगा।
संपादित करें 2: मैं खुद को और अधिक स्पष्ट करने की कोशिश करूंगा। जब मैं अपनी इकाई लिख रहा/चला रहा हूं और कुछ एकीकरण परीक्षणों में मुझे कोई समस्या नहीं है, क्योंकि परीक्षण डेटा जारी नहीं है, यह स्मृति में रहता है।
लेकिन जब मैं अपने परीक्षण डेटा को जारी रखने की कोशिश करता हूं, तो हाइबरनेट मुझे इसके संबंधों के बिना एक इकाई को बचाने नहीं देगा।
मैं इस समस्या को कैसे दूर कर सकता हूं?
कल्पना करें कि ये डेटा डीबी में पहले से मौजूद है। और एक और प्रक्रिया (जिसे मैं परीक्षण कर रहा हूं) इन आंकड़ों को पढ़ रहा है। लेकिन कभी-कभी बी बी प्रासंगिक होता है और मैं बीएस बनाने और बनाए रखने के दौरान इसे परीक्षण में दिखाना चाहता हूं; लेकिन कभी-कभी वे प्रासंगिक नहीं होते हैं और मैं उन्हें बिल्डरों के पीछे छिपाने की कोशिश कर रहा हूं। – nimcap
यह मुझे समझ में नहीं आता है। यदि डेटा पहले ही डीबी में है, तो क्यों (और whan) आपको इसे जारी रखने की आवश्यकता है? और आपका क्या मतलब है "मैं इसे [बी] परीक्षण में दिखाना चाहता हूं" ?? – sleske