मैं अपने उत्पादों में से एक के लिए यूनिट परीक्षण लिख रहा हूं और एंटीटी फ्रेमवर्क से कनेक्शन को सफलतापूर्वक नकल करने के लिए एमओक का उपयोग किया गया है। हालांकि, मैं निम्नलिखित विधि में आया हूं:Moq और SqlConnection?
public static productValue findValues(string productName, string dbConnectionString)
{
try
{
SqlConnection conn = new SqlConnection(dbConnectionString);
conn.Open();
//Do stuff
}
}
जो पास किए गए कनेक्शन स्ट्रिंग का उपयोग करके उस विधि के अंदर हमारे डेटाबेस तक पहुंचता है। क्या एमओक का उपयोग करके एक नकली डीबी स्थापित करना और कनेक्शन स्ट्रिंग बनाना संभव है जो मॉक किए गए डीबी को इंगित करता है? मैं हालांकि मैं अनिश्चित हूँ अगर यह सही दृष्टिकोण है, के रूप में इस संबंध में ही बजाय डीबी नकली हैं
var mockSqlConnnection = new Mock<SqlConnection>();
की तर्ज पर कुछ कर रही कोशिश कर रहा है।
यह संभव नहीं है कि मेरा मानना है कि एसक्यूएलकनेक्शन एक मुहरबंद वर्ग है और इसलिए इसे मजाक नहीं किया जा सकता है। आप आईडीबीसी कनेक्शन का नकल कर सकते हैं, लेकिन अभी भी बहुत कुछ करना होगा: यदि आप इस विधि का परीक्षण करना चाहते हैं, तो आपको इसे थोड़ा सा रिफैक्टर करना पड़ सकता है। – stuartd
आप बिल्कुल सही हैं, एसक्यूएलकनेक्शन एक सीलबंद वर्ग – Novastorm
है [डेटाबेस को आपके रास्ते से बाहर निकालने का सबसे अच्छा तरीका है सारणी इंटरफेस के पीछे डेटा एक्सेस को छिपाना है जिसे व्यवसाय तर्क परीक्षण में मजाक किया जा सकता है] (http: // codebetter .com/jeremymiller/2005/10/12/इकाई परीक्षण-व्यवसाय-तर्क-बिना-ट्रिपिंग-ओवर-द-डेटाबेस /)। – dee