मैं जानता हूँ कि यह एक पुराने सवाल और जवाब है, लेकिन मैं कुछ इकाई परीक्षण के लिए बिल्कुल वही बात पर काम करना चाहते इस पर इस पर ठोकर खाई। तब मैं हुआ कि मैं पहले से ही इस तरह Moq (facepalm) का उपयोग कर कर रहा हूँ।
मुझे ImpromptuInterface के लिए अन्य सुझाव पसंद है लेकिन मैं पहले से ही Moq का उपयोग कर रहा हूं और ऐसा लगता है कि यह एक बड़ा अनुसरण कर रहा है (यह राय है और तथ्य नहीं) अधिक स्थिर और लंबे समय तक समर्थित होगा।
इसलिए इस मामले के लिए हो
की तरह कुछ
public interface ICoOrd
{
int X { get; set; }
int Y { get; set; }
}
public class Sample
{
public void Test()
{
var aCord = new Mock<ICoOrd>();
aCord.SetupGet(c => c.X).Returns(44);
aCord.SetupGet(c => c.Y).Returns(55);
var a = aCord.Object;
}
}
संपादित होगा: सिर्फ एक और तरीका कॉर्ड उपहास करने के लिए जोड़ने, शुरू कर दिया यह इस तरह से कर रही है और ऐसा लगता है थोड़ा बेहतर।
public void AnotherTest()
{
var aCord = Mock.Of<ICoOrd>(c => c.X == 44 && c.Y == 55);
//do stuff with aCord
}
मैं सिर्फ उत्सुक हूं: आप ऐसा करने की कोशिश कर रहे हैं जिसके लिए आपको ऐसा करने की आवश्यकता होगी? यदि आप इंटरफ़ेस को जानते हैं, तो आप स्पष्ट रूप से जानते हैं कि इंटरफ़ेस की कार्यक्षमता क्या है, ताकि आप उस कार्यक्षमता को प्रदान करने के लिए कक्षा को कार्यान्वित कर सकें, जिस स्थिति में आपको किसी अज्ञात प्रकार की आवश्यकता नहीं है, क्योंकि आप केवल अपनी कक्षा का उदाहरण बना सकते हैं। – xxbbcc
क्यों आप चाहते हैं कि अज्ञात (आप इसके डिजाइन के बारे में "परवाह नहीं करते) इंटरफेस (जिसका मतलब है कि आप इसके डिजाइन के बारे में" देखभाल "करते हैं)? – gdoron
@gdoron: एक इंटरफेस एक आसान काम है, और मुझे पता चला है कि एनन प्रकारों का अच्छा उपयोग (इस मामले में कोई LINQ) ने मेरे कोड को सरल बना दिया है * और * इरादे को स्पष्ट करने में मदद की है। वह प्रेरणा है। ज्यादातर मध्यवर्ती संरचनाओं के साथ करने के लिए। – sgtz