orm - Operation involving foreign key Insertion causes problems during Unit Testing Stage -


मेरे पास निम्न स्कीमा है:

  तालिका की स्थिति की स्थिति बनाओ {statusid int primary key, statusname स्ट्रिंग अनूठा, विवरण स्ट्रिंग} टेबल जॉब बनाना {नौकरी के लिए प्राथमिक प्राथमिक कुंजी, जॉब नाम स्ट्रिंग अनूठा, स्टेटसियड विदेशी कुंजी संदर्भ स्थिति (स्थिति)}  

तालिका स्थितिlookup , ज़ाहिर है, स्कीमा सेटअप के दौरान तैयार किया जाना चाहिए ताकि बाद में जब हम तालिका नौकरी में कोई प्रविष्टि बनाते हैं, तो हम इसे संदर्भित कर सकते हैं और विदेशी कुंजी त्रुटि नहीं प्राप्त कर सकते हैं तालिका में एक प्रविष्टि जोड़ने के लिए नौकरी , हमें सिर्फ़ एक सरल सम्मिलन कमांड का उपयोग करना होगा:

  job = new job (); job.jobname = "mytest"; job.status_id = 2;  

अब तक अच्छा है .. और यह उत्पादन वातावरण में काम करता है!

एकमात्र समस्या इकाई परीक्षण चरण के दौरान है मैं डाटा एक्सेस लेयर का परीक्षण करता हूं और परीक्षण की शुरुआत में, डाटाबेस स्पष्ट हो जाएगा और प्रारंभिक डेटा के साथ दोबारा आवृत होगा। लेकिन समस्या यह है कि हर बार पुनर्पूंजीकरण किया जाता है, स्टेटसैट और जॉबिड बढ़ेगा। इसलिए यूनिट टेस्ट में कोई भी पहले की तरह सम्मिलित नहीं कर सकता है, क्योंकि स्टेटसैट हर समय बदल रहा है।

मैं अपना insert statement बदलने के बारे में सोच रहा हूं। ताकि यह अधिक यूनिट-टेस्टिंग मैत्रीपूर्ण हो .. कोई विचार?

संपादित करें: यह एक डाटाबेस / ओआरएम अज्ञेय सवाल होना चाहिए। क्योंकि मैं एसक्यूएल सर्वर, एमईएसक्यूएल, एमएस एक्सेस और प्रोपेल, एनएचबरनेनेट इत्यादि के साथ काम करता हूं। इसलिए मैं सामान्य समाधान चाहता हूं जो हर मामले में लागू किया जा सकता है।

संपादन 2: सम्मिलित करना पहचान फ़ील्ड मान काम करने के लिए प्रतीत नहीं होता। क्योंकि जब आप किसी तालिका (ORM के माध्यम से) को पॉप्युलेट करते हैं, तो आप पहचान फ़ील्ड मान निर्दिष्ट नहीं कर सकते, कम से कम प्रोपेल उसे अनुमति नहीं देगा।

क्या आपके डेटाबेस का समर्थन पहचान फ़ील्ड में डालना है? यह सबसे स्पष्ट जवाब है (इकाई परीक्षण में ज्ञात आईडी के साथ स्थिति तालिका को पॉप्युलेट करने के लिए)।


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -