2009-12-10 12 views
5

मैं NMock2 साथ करने की कोशिश की, लेकिन जब निर्माता में mocks पारित करने के लिए कोशिश कर रहा TypeLoadExceptions प्राप्त कुछ के साथ एक बाहर पैरामीटर, यह भी मैंने देखा TypeMock ऐसा कर सकते हैं, लेकिन यह 80 $नकली moq या राइनो नकली वरना

उत्तर

7

मैं अपने आप को पता चला, तो आप उस Moq के साथ, यह इस तरह है वास्तव में कर सकते हैं:

var info = new Info { stuff = 1 }; 

textReader.Setup(o => o.Read<CandidateCsv>("", out info)); 

यह है कि :)

+5

यह सच है, लेकिन जब आप निष्पादित होते हैं तो आप Moq जानकारी के मूल्य को बदल नहीं सकते हैं। –

3

Moq लागत does not समर्थन मॉकिंग आउट/रेफ पैरामीटर, लेकिन आप आउटरफ का उपयोग करके राइनो मोक्स का उपयोग करके ऐसा कर सकते हैं, जो विधि में प्रत्येक आउट/रेफ पैरामीटर के लिए एक तर्क स्वीकार करता है।

MockRepository mockRepository = new MockRepository(); 

// IService.Execute(out int result); 
var mock = mockRepository.CreateStub<IService>(); 

int mockResult; // Still needed in order for Execute to compile 

mock.Setup(x => x.Execute(out mockResult)).OutRef(5); 
mock.Replay(); 

int result; 

mock.Execute(out result); 

Assert.AreEqual(5, result); 
+3

यह सही नहीं है। Moq समर्थन/रेफ पैरामीटर का समर्थन करता है। Http://code.google.com/p/moq/wiki/QuickStart – TrueWill

+0

@TreueWill देखें - समर्थन का स्तर नहीं बदला है। आप अभी भी एक निश्चित 'रेफरी' तर्क के साथ एक विधि कॉल की उम्मीद नहीं कर सकते हैं और फिर निर्दिष्ट करें कि वह तर्क किसी अन्य मान में बदला जा सकता है। –

+0

सच है, लेकिन आप बस एक नया नकली घोषित कर सकते हैं। सेटअप के बाद क्या बदला जा सकता है उस पर एक सीमा एक समान बात नहीं है जो मॉकिंग आउट/रेफ पैरामीटर के लिए समर्थन की कमी है। – TrueWill

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