मैं अपने परीक्षण सूट लिखते समय अच्छे प्रथाओं का पालन करने की कोशिश कर रहा हूं। आधे रास्ते के माध्यम से मैं कि iam खर्च बहुत नकली वस्तुओं पर अपने समय के (सबसे) ... मेरे परीक्षण में से अधिकांश इसनकली या झुंड के साथ यूनिट परीक्षण?
public interface ITemplateRepository
{
string get GetGenericTemplate {get;}
}
public FakeTemplateRepository : ITemplateRepository
{
public string GetGenericTemplate()
{
return "<xml>Complex</xml>";
}
}
[Test]
public void CanGetGenericTemplate()
{
ITemplateRepository rep = new FakeTemplateRepository();
Assert.IsNotNull(rep.GetGenericTemplate());
}
की तरह कुछ करता है एहसास हुआ
[Test]
public void GetGenericTemplateContains()
{
ITemplateRepository rep = new FakeTemplateRepository();
Assert.IsTrue(rep.GetGenericTemplate().StartsWith("<xml>"));
}
मुझे वास्तव में खुद को FakeTemplateRepository पर बहुत समय व्यतीत हुआ, यह सुनिश्चित कर रहा था कि यह वास्तविक सामग्री को लौटाए जो मैं उम्मीद कर रहा था। क्या यह खराब चीज़ है?
क्या यह अभी भी एक वैध यूनिट टेस्ट है? यूनिट परीक्षण तेज और सरल होना चाहिए, नहीं? लेकिन ईमानदारी से मैं वास्तव में निश्चित नहीं हूं, निश्चित रूप से एक बात यह है कि मुझे अपने डेटा के आकार और सामग्री के बारे में मेरी सोच मिल गई। FakeRepository में सामग्री इन-मेमोरी के बजाय, फ़ाइल सिस्टम से पढ़ने के बावजूद, मेरी उत्पादन सामग्री को कम या ज्यादा प्रतिबिंबित करेगी।
यदि वास्तव में मैं जो कर रहा हूं वह एकीकरण टेस्ट हैं, तो मुझे अपने यूनिट परीक्षणों के लिए मैक्स का उपयोग कैसे करना चाहिए?
यह मुझे समझ में नहीं आता है (यदि मैक्स का उपयोग कर रहा है) कि मैं उम्मीद को सेट करता हूं ताकि यह विधि को कॉल करे और स्ट्रिंग लौटाए? क्या मुझे कुछ याद आ रहा है लेकिन मुझे वहां बहुत मूल्य नहीं दिख रहा है? यदि मैं एक अवैध विधि नाम सेट करता हूं तो कोड भी संकलित नहीं होगा!
मैं वास्तव में पूरी चीज के बारे में वास्तव में उलझन में हूं और यूनिट परीक्षण की मेरी धारणा अब इन सभी अवधारणाओं के साथ पूरी तरह धुंधली है।
क्या कोई भी सुपर सुपर सरल उदाहरण के साथ प्रदर्शित हो सकता है कि कैसे नकली और मोजे सूट में फिट होते हैं? उदाहरण के लिए यूनिट टेस्ट क्या होना चाहिए, एकीकरण परीक्षण क्या होना चाहिए?
धन्यवाद
ठीक है, अपना कोड जो भी चाहता है उसे देना बहुत उपयोगी नहीं होगा क्योंकि यह सबसे सरल रूप में परीक्षण है, मुझे लगता है, "इसे अपने पैसों के माध्यम से डालना"। –