2009-09-23 12 views
20

यदि मैं एक वर्ग को मॉक करना चाहता हूं जो एक स्ट्रिंग लौटाता है जिसका उपयोग यह निर्धारित करने के लिए किया जाता है कि लूप जारी रखना चाहिए (स्ट्रिंग के दौरान पढ़ने की कल्पना करें! = Null), मैं उम्मीद कैसे सेट कर सकता हूं । मैं निम्नलिखित की कोशिश की है:राइनो मॉक विधि के लिए एकाधिक कॉल अलग-अलग परिणाम

provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20"); 
    provider.Reader.Expect(r => r.ReadLine()).Return(null); 

लेकिन जब यह एक ही विधि में दो बार कहा जाता है, यह दोनों अवसरों पर पहली स्ट्रिंग देता है, जबकि मैं इसे दूसरा मान (शून्य) वापस जाने के लिए चाहते हैं, तो दूसरी बार कहा जाता है ।

उत्तर

28

मुझे लगता है कि आप सिंटैक्स के अंत में दोहराना चाहते हैं जो आप वर्तमान में उपयोग कर रहे हैं।

provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20").Repeat.Once(); 
provider.Reader.Expect(r => r.ReadLine()).Return(null).Repeat.Once(); 

या

provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20").Repeat.Once(); 
    provider.Reader.Expect(r => r.ReadLine()).Return(null); 

आपको लगता है कि आप दूसरी उम्मीद उपयोग करना चाहते हैं 2 कॉल से परे किसी भी कॉल किया है।

0

मैं आपके द्वारा उपयोग किए जा रहे वाक्यविन्यास से परिचित नहीं हूं।

r.ReadLine(); 
LastCall.Return("1,10,20").Repeat.Once(); 
r.ReadLine(); 
LastCall.Return(null).Repeat.Once(); 

सुनिश्चित करने के लिए है कि आप बार है कि चीजों को बार-बार हो रहे हैं की संख्या निर्दिष्ट कर रहे हैं: मैं इस के रूप में लिखते थे। (दृश्य स्टूडियो को हाथ में रखने के लिए नहीं है, सिंटैक्स सटीक नहीं हो सकता है।)

+0

यह 3.5 धाराप्रवाह वाक्यविन्यास है। –

संबंधित मुद्दे