मैं उत्सुक हूं कि लोगों को मॉकिंग और क्यों के लिए उपयोग करना पसंद है। मुझे पता है कि दो विधियों हार्ड कोडित मॉक ऑब्जेक्ट्स और एक मॉकिंग फ्रेमवर्क का उपयोग कर रहे हैं। प्रदर्शित करने के लिए, मैं सी # का उपयोग कर एक उदाहरण की रूपरेखा तैयार करूंगा।हार्ड-कोडेड मॉक ऑब्जेक्ट्स बनाम फ्रेमवर्क
मान लीजिए कि हमारे पास GetEmployeeById नामक विधि के साथ एक IEMployeeRepository इंटरफ़ेस है।
public interface IEmployeeRepository
{
Employee GetEmployeeById(long id);
}
हम आसानी से इस बात का एक नकली बना सकते हैं:
public class MockEmployeeRepository : IEmployeeRepository
{
public Employee GetEmployeeById(long id)
{
Employee employee = new Employee();
employee.FirstName = "First";
employee.LastName = "Last";
...
return employee;
}
}
फिर, हमारे परीक्षणों में हम स्पष्ट रूप से हमारी सेवाओं MockEmployeeRepository उपयोग करने के लिए, बता या तो एक सेटर या निर्भरता इंजेक्शन का उपयोग कर सकते हैं। मैं ढांचे को मजाक करने के लिए नया हूं इसलिए मैं उत्सुक हूं कि हम उनका उपयोग क्यों करते हैं, अगर हम उपर्युक्त कर सकते हैं?
यदि आपके पास ढांचे के साथ कोई अनुभव नहीं है तो हार्डकोडिंग बहुत आसान है। एक फ्रेमवर्क अधिक शक्तिशाली होता है, खासकर यदि आप किसी विधि को अक्सर या अक्सर कहलाते हैं तो इस बारे में दावा करना चाहते हैं। – k3b