के साथ एक ठोस वर्ग की ग # मजाक इंटरफ़ेस सदस्यों के रूप में निम्नानुसार मैं एक अंतरफलक ITransaction है:Moq
public interface ITransaction {
DateTime EntryTime { get; }
DateTime ExitTime { get; }
}
और मैं एक व्युत्पन्न वर्ग PaymentTransaction इस प्रकार है:
public class PaymentTransaction : ITransaction {
public virtual DateTime LastPaymentTime
{
get { return DateTime.Now; }
}
#region ITransaction Members
public DateTime EntryTime
{
get { throw new NotImplementedException(); }
}
public DateTime ExitTime
{
get { throw new NotImplementedException(); }
}
#endregion
}
मैं सभी उपहास करने के लिए करना चाहता था PaymentTransaction ऑब्जेक्ट के तीन गुण।
मैं निम्नलिखित की कोशिश की है, लेकिन यह काम नहीं करता:
var mockedPayTxn = new Mock<PaymentTransaction>();
mockedPayTxn.SetUp(pt => pt.LastPaymentTime).Returns(DateTime.Now); // This works
var mockedTxn = mockedPayTxn.As<ITransaction>();
mockedTxn.SetUp(t => t.EntryTime).Returns(DateTime.Today);
mockedTxn.SetUp(t => t.ExitTime).Returns(DateTime.Today);
लेकिन जब मैं ((PaymentTransaction रूप mockedTxn.Object)
विधि मैं परीक्षण कर रहा हूँ मेंइंजेक्षन यह के रूप में केवल भुगतान लेनदेन लेता है और आईट्रांसैक्शन नहीं, मैं इसे भी नहीं बदल सकता) डीबगर प्रवेश समय और बाहर निकलने के समय के लिए शून्य संदर्भ दिखाता है।
मैं सोच रहा था कि कोई मेरी मदद कर सकता है या नहीं।
प्रत्याशा में धन्यवाद।
मैं समझता हूं कि मैं एक ठोस वर्ग का मज़ाक उड़ा रहा हूं, लेकिन इस तथ्य को देखते हुए कि प्रवेश और निकास समय प्रोप इंटरफ़ेस सदस्य हैं और मैं इंटरफ़ेस में अपनी ठोस मॉक ऑब्जेक्ट कास्टिंग कर रहा हूं, मुझे इन प्रोप वर्चुअल बनाने की आवश्यकता नहीं है। मैं बस सोच रहा था कि ऐसा करने का कोई और तरीका है या नहीं। – Raghu
तो क्या आपको अंत में जवाब मिल गया? तुमने ये कैसे किया? –