के साथ एकीकरण परीक्षण मैं अपने आवेदन के लिए एकीकरण परीक्षण लिखता हूं, और इसके लिए मेरे कंटेनर का उपयोग करता हूं। मैं वास्तविक घटकों में सभी घटकों को पंजीकृत करने में सक्षम होना चाहता हूं, और फिर कुछ घटकों को ओवरराइड करता हूं और उन्हें स्टब्स कार्यान्वयन का उपयोग करने के लिए स्विच करता हूं।ऑटोफैक पंजीकरण ओवरराइड करें - डी
मैं DI को अलग नहीं करना चाहता और केवल परीक्षण के लिए एक कंटेनर रखना चाहता हूं क्योंकि मैं असली चीज़ का परीक्षण करना चाहता हूं।
ऐसा करने से भी बदसूरत लगता है:
public class MyRegistrations
{
public static RegisterAll(bool isInTest= false)
{
if (isTest)
{
// Register test fakes
}
else
// Register real components
}
}
तो मैं अपने परीक्षण वातावरण में पंजीकरण अधिभावी के बारे में सोचा। यह कैसे किया जाना चाहिए?
मेरे लक्ष्य को प्राप्त करने के लिए कोई और बेहतर तरीका?
धन्यवाद
क्या मैं पूछ सकता हूं कि आप अपने एकीकरण परीक्षण के हिस्से के रूप में घटकों को नकल क्यों करना चाहते हैं? क्या आप अपने आवेदन की अंत-टू-एंड कार्यक्षमता की तलाश नहीं कर रहे हैं जिसे आप नकली घटक के साथ नहीं प्राप्त करेंगे? यहां तक कि यदि इसका मतलब किसी वास्तविक डेटाबेस उदाहरण या डब्लूसीएफ एंड-पॉइंट इत्यादि को लिखना है। –
@StephenRoss ऐसे मामले हैं जहां एकीकरण परीक्षण में एक विशिष्ट स्थिति को अनुकरण करना बहुत मुश्किल है, लेकिन आप इसे एकीकरण के हिस्से के रूप में जांचना चाहते हैं परीक्षा; उदाहरण के लिए सी और सी एजेंट जो अलर्ट करता है जब डिस्क सी और सी सर्वर पर पूर्ण होती है। –
@ ओल्डफ़ॉक्स यदि वह मेरे एप्लिकेशन पर एक एकीकरण परीक्षण किया गया था, तो भी मैं डिस्क को अधिकतम लोड करना चाहता हूं। आप (इकाई) पहले से ही एक यूनिट परीक्षण में परीक्षण कर रहे हैं कि बातचीत सही तरीके से संभाली जाती है, लेकिन अब आप यह सुनिश्चित करने के लिए जांच कर रहे हैं कि सबकुछ सही-से-अंत में सही ढंग से काम करता है (सही ढंग से एकीकृत)। यदि इसका मतलब है कि परीक्षण के लिए डिस्क पर 10 जीबी रिक्त डेटा लिखना है तो यह हो, अन्यथा हम कैसे और जानेंगे कि हम (मुझे उम्मीद है) घटना को सही तरीके से और सही समय पर संभालने वाले हैं। –