मैं शायद आपको हमारे अनुभव का स्वाद दे सकता हूं, जब हमने अपनी मध्य-स्तरीय प्रक्रिया का परीक्षण करने वाली इकाई को देखना शुरू किया, जिसमें "व्यापार तर्क" वर्ग संचालन का एक टन शामिल था।
हमने पहले एक अमूर्त परत बनाई, जिसने हमें किसी भी उचित डेटाबेस कनेक्शन में "स्लॉट" करने की अनुमति दी (हमारे मामले में, हमने बस एक ओडीबीसी-प्रकार कनेक्शन का समर्थन किया)।
एक बार जब यह जगह थी, तब हम अपने कोड में कुछ ऐसा करने में सक्षम थे (हम C ++ में काम करते हैं, लेकिन मुझे यकीन है कि आपको यह विचार प्राप्त होगा):
GetDatabase ()। ExecuteSQL ("INSERT INTO foo (blah, blah)")
सामान्य समय में, GetDatabase () एक ऐसी वस्तु लौटाएगा जो हमारे सभी sql (क्वेरीज़ सहित) को सीधे ODBC के माध्यम से डेटाबेस में फीड कर देगी।
हमने तब इन-मेमोरी डेटाबेस को देखना शुरू किया - एक लंबे रास्ते से सबसे अच्छा SQLite लगता है। ( http://www.sqlite.org/index.html )। यह सरल रूप से सेट अप और उपयोग करने के लिए सरल है, और हमें उप-वर्ग और गेट-वेबेस को ओवरराइड करने की अनुमति देता है, जो कि प्रत्येक परीक्षण के लिए बनाए गए और नष्ट हो चुके डेटाबेस में SQL को अग्रेषित करता है।
हम अभी भी इसके शुरुआती चरण में हैं, लेकिन यह अब तक अच्छा लग रहा है, लेकिन हमें यह सुनिश्चित करना होगा कि हम कोई भी तालिका बनाएं जो आवश्यक हैं और उन्हें परीक्षण डेटा के साथ पॉप्युलेट करें - हालांकि हमने यहां कुछ काम का बोझ कम किया है सहायक कार्यों का एक सामान्य सेट जो हमारे लिए यह सब कर सकता है।
कुल मिलाकर, इसने हमारी TDD प्रक्रिया के साथ बहुत मदद की है, क्योंकि कुछ कीड़े को ठीक करने के लिए काफी सहज बदलाव जैसा लगता है, जो आपके सिस्टम के अन्य क्षेत्रों (पता लगाने में मुश्किल) पर बहुत अजीब प्रभाव डालता है - बहुत ही सामान्य प्रकृति के वर्ग / डेटाबेस के कारण।
जाहिर है, हमारे अनुभव सी + + विकास के वातावरण के आसपास केंद्रित हैं, हालांकि मुझे यकीन है कि आप शायद पीएचपी / पायथन के तहत कुछ इसी तरह का काम कर सकते हैं।
उम्मीद है की यह मदद करेगा।