मैं टीडीडी दायरे में प्रवेश करने की कोशिश कर रहा हूं, और मेरे पास कुछ उपयोगकर्ता मॉडल का परीक्षण करने में कठिनाई इकाई है। मैं अपने मॉडल के सत्यापन का परीक्षण करने के कोशिश कर रहा हूँ, और व्यापार की आवश्यकताओं इस प्रकार हैं:यूनिट परीक्षण दाबाबेस अनुप्रयोग
- > = 6 चरित्र उपयोगकर्ता नाम आवश्यक
- > = 5 चरित्र पासवर्ड, कम से कम 1 पत्र और नंबर साथ
- मान्य ईमेल प्रारूप आवश्यक
- ... ऐसा ऐसा
- उपयोगकर्ता नाम और ईमेल पहले से ही डीबी
सभी आवश्यकताएँ हैं में मौजूद नहीं कर सकते आसानी से टेस्ट करने योग्य, 5 को छोड़कर, जिसके लिए डेटाबेस को ज्ञात स्थिति में होना आवश्यक है। मुझे पता है कि PHPUnit के साथ मैं एक्सएमएल फाइलों का उपयोग कर एक ज्ञात राज्य में अपना डेटाबेस स्थापित कर सकता हूं, लेकिन क्या कोई बेहतर तरीका है?
जो मैं चाहता हूं वह मेरे डेटाबेस के लिए राज्य में वापस लौटने के लिए है, यह परीक्षण चलाने से पहले था (यानी, विकास के दौरान)। मुझे लगता है कि मैं परिवर्तनों को रोलबैक करने के लिए MySQL लेन-देन का उपयोग कर सकता हूं, या मुझे लगता है कि मैं दो अलग-अलग डेटाबेस का उपयोग कर सकता हूं, एक विकास के लिए और एक परीक्षण के लिए।
मैंने यूनिट परीक्षणों में वास्तविक डीबी कनेक्शन का उपयोग न करने के लिए कहीं भी पढ़ा है, और इसके बजाय नकली डेटा का उपयोग करें। बिल्कुल यकीन नहीं है कि यह कैसे काम करता है।
क्या कोई मुझे मेरे पास अलग-अलग विकल्पों की व्याख्या कर सकता है, और कौन से सबसे अच्छे मार्ग हैं?
धन्यवाद
संपादित करें:
मुझे लगता है मैं रूबी ऑन रेल्स दृष्टिकोण के साथ जाने के लिए जा रहा हूँ और सिर्फ 3 अलग डेटाबेस, उत्पादन, विकास, और परीक्षण की स्थापना की। जब तक किसी के पास कोई आपत्ति नहीं होती है।
शायद कुछ हद तक संबंधित: http://stackoverflow.com/questions/5281418/using-mock-objects-in-php-inside-functions-that-instantiate-their-own-objects – edorian