2009-01-29 11 views
16

हम कुछ यूनिट परीक्षण करने के लिए राइनो मोक्स का उपयोग कर रहे हैं और दो इंटरफेस का नकल करने की आवश्यकता है। ऑब्जेक्ट पर केवल एक इंटरफेस लागू किया गया है और दूसरा एक पहलू उन्मुख दृष्टिकोण का उपयोग करके गतिशील रूप से कार्यान्वित किया जाता है। क्या दो इंटरफेस गतिशील रूप से गठबंधन करने का कोई आसान तरीका है ताकि एक नकली बनाया जा सके और दोनों इंटरफेस के लिए तरीकों को दबाया जा सके?मैक्स बनाने के दौरान मैं दो इंटरफेस कैसे जोड़ूं?

उत्तर

3

राइनो Mocks का उपयोग कर कई इंटरफेस के साथ एक नकली तो जैसे उत्पन्न किया जा सकता है:

var mocker = new MockRepository(); 
var mock = mocker.CreateMultiMock<IPrimaryInterface>(typeof(IFoo), typeof(IBar)); 
mocker.ReplayAll(); 
+2

टिप्पणी जानकारी का उपयोग किया है कि 'ReplayAll' एक [अप्रचलित राइनो मोक्स शैली] है (http://stackoverflow.com/questions/6078061/what-is-replayall-and-verifyall-in-rhinomocks) – Default

11

यह गतिशील नहीं है, लेकिन निश्चित रूप से आसान है:

internal interface ICombined : IFirstInterface, ISecondInterface {} 

फिर ICombined नकली: अपने परीक्षण विधानसभा के भीतर एक इंटरफेस है जो अन्य दो इंटरफेस को लागू करने के अलावा अन्य कुछ नहीं करता है बनाएँ।

14

राइनो Mocks का उपयोग

var mock = MockRepository.GenerateMock<IFirst, ISecond>(); 
mock.Stub(m => m.FirstProperty).PropertyBehavior(); 
((ISecond)mock).Stub(k=> k.SecondProperty).PropertyBehavior(); 

मिले और से http://www.richard-banks.org/2010/08/mocking-comparison-part-11-multiple.html

+3

यदि अन्य टी पर ठोकरें उसका, ध्यान दें कि यह उत्पन्न ** मॉक ** है और 'जेनरेट स्टब' नहीं है। स्टब संस्करण में एकाधिक प्रकार के तर्क नहीं हैं। – Default

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