यह मेरा पहला सवाल है इसलिए कृपया दयालु रहें! :)कोई वापसी मूल्य वाले विधि का परीक्षण करने के लिए Moq का उपयोग कैसे करें?
जो मैं करने की कोशिश कर रहा हूं वह प्रबंधक वर्ग के लिए कुछ परीक्षण लिखता है कि निर्माण के दौरान एक आइटम वर्ग के कई नए उदाहरणों को एक सूची में जोड़ता है। जब इस प्रबंधक वर्ग में UpdateAllItems को कॉल किया जाता है तो इरादा सूची को फिर से चालू करना और प्रत्येक आइटम पर वृद्धि को कॉल करना है।
प्रबंधक वर्ग मेरा कोड है, लेकिन एकल आइटम वर्ग ऐसा नहीं है इसलिए मैं इसे संशोधित नहीं कर सकता।
मैं परीक्षण फ्रेमवर्क के लिए एनयूनीट का उपयोग करता हूं और मोक के साथ काम करना शुरू कर रहा हूं। चूंकि प्रबंधक वर्ग एकल आइटम वर्ग का उपयोग करता है, मुझे लगता है कि मुझे एक Moq का उपयोग करने की आवश्यकता है, इसलिए मैं केवल मैनेजर का परीक्षण कर रहा हूं, न कि एक आइटम।
मैं अपने UpdateAllItems विधि के लिए परीक्षण कैसे लिखूं? (तकनीकी रूप से मुझे पहले परीक्षणों को लिखना चाहिए)।
यहाँ एक कुछ नमूना कोड है कि क्या मैं के साथ काम कर रहा हूँ की एक सामान्य विचार देता है ... सभी मदद के लिए
public class SingleItem_CodeCantBeModified
{
public int CurrentValue { get; private set; }
public SingleItem_CodeCantBeModified(int startValue)
{
CurrentValue = startValue;
}
public void Increment()
{
CurrentValue++;
}
}
public class SingleItemManager
{
List<SingleItem_CodeCantBeModified> items = new List<SingleItem_CodeCantBeModified>();
public SingleItemManager()
{
items.Add(new SingleItem_CodeCantBeModified(100));
items.Add(new SingleItem_CodeCantBeModified(200));
}
public void UpdateAllItems()
{
items.ForEach(item => item.Increment());
}
}
धन्यवाद!
यह कक्षा कैसे उपयोगी है? यह काउंटर की एक निजी सूची बनाता है और हर बार एक विधि कहलाता है जब प्रत्येक आइटम अद्यतन करता है। ऑब्जेक्ट के व्यवहार में कुछ बदलाव होना चाहिए .. उदा। अगर UpdateAllItems काम नहीं करता है - परिवर्तन क्या देखा जाएगा? – Gishu