मैं भंडार वर्ग (दाल) है: एक इकाई परीक्षण बनाना MyRepository के लिए ले जाएगा
public class MyService
{
private IMyRepository localRepository;
public MyService(IMyRepository instance)
{
this.localRepository = instance;
}
public void Delete(int itemId)
{
instance.Delete(itemId);
}
// other methods
}
:
public class MyRepository : IMyRepository
{
public void Delete(int itemId)
{
// creates a concrete EF context class
// deletes the object by calling context.DeleteObject()
}
// other methods
}
मैं भी एक सेवा वर्ग (BLL) है इसे लागू करने से कहीं अधिक समय, क्योंकि मुझे इकाई फ्रेमवर्क संदर्भ का नकल करना होगा।
लेकिन MyService के लिए यूनिट परीक्षण बनाना बकवास लगता है, क्योंकि यह केवल रिपोजिटरी में कॉल करता है। मैं जांच सकता हूं कि यह सत्यापित करने के लिए है कि क्या वास्तव में यह रिपोजिटरी हटाएं विधि को कॉल करता है।
प्रश्न
आप इकाई परीक्षण कैसे सुझाव है हटाएँ तरीकों में से इन जोड़ी। दोनों? एक? कोई नहीं? और आप क्या परीक्षण करेंगे?
लेकिन अगर मैं यूनिट परीक्षण सेवा। हटाएं() विधि, तो मैं यह सत्यापित कर सकता हूं कि यह Repository.Delete() विधि को कॉल करता है। मैं किसी भी डेटा की जांच नहीं कर सकता, क्योंकि भंडारण में डेटा हेरफेर किया जाता है। अन्य (भविष्य) जटिलताओं को परीक्षण में शामिल नहीं किया जाएगा। –
@Robert यह पूरी तरह से सही नहीं है। आपको नकली IMyRepository ऑब्जेक्ट बनाना होगा। एक बार ऐसा करने के बाद, आप अपना मॉक सेट अप कर सकते हैं ताकि जब सर्विस लेयर कॉल उस पर डिलीट हो जाए, तो आप यह सत्यापित कर सकते हैं कि मिल्क पर डिलीट को सही तरीके से बुलाया जाता है। इसलिए, आप सेवा का परीक्षण कर रहे हैं। रिपोजिटरी का परीक्षण किए बिना कार्यक्षमता हटाएं। साथ ही हटाएं। – Joseph