मेरे पास निम्न कोड है जहां मेरे मॉक इंटरफ़ेस में एक रिकॉर्डर संपत्ति है जो एक वर्ग है।सेटअप के माध्यम से नकली संपत्ति सेट करना 'अभिव्यक्ति एक विधि आमंत्रण नहीं है'
मैं फिर उस वर्ग पर एक संपत्ति सेट करने का प्रयास करता हूं लेकिन मुझे Expression is not a method invocation
त्रुटि मिलती है। क्या आप सहायता कर सकते हैं?
त्रुटि रनटाइम पर है जब यह enum संपत्ति सेट सेट करने के लिए जाता है। यह नीचे स्टैक ट्रेस के साथ एक ArgumentException फेंकता है:
at Moq.ExpressionExtensions.ToMethodCall(LambdaExpression expression)
at Moq.Mock.<>c__DisplayClass1c`2.<Setup>b__1b()
at Moq.PexProtector.Invoke[T](Func`1 function)
at Moq.Mock.Setup[T,TResult](Mock mock, Expression`1 expression, Func`1 condition)
at Moq.Mock`1.Setup[TResult](Expression`1 expression)
धन्यवाद
//Works
var mock = new Moq.Mock<IEngine>();
//Works
mock.Setup(x => x.Recorder).Returns(new Moq.Mock<Recorder>().Object);
//Fails on the next line assigning a property value!!!
mock.Setup(x => x.Recorder.RunState).Returns(Recorder.eRunStates.Play);
अद्यतन - मैं ने पाया है कि RunState एक संपत्ति है, लेकिन एक क्षेत्र/सदस्य जो एक enum
क्या आप हमें बता सकते हैं * कहां * आपको त्रुटि मिलती है? क्या यह एक संकलन-समय त्रुटि या निष्पादन समय त्रुटि है, और यदि यह निष्पादन समय त्रुटि है, तो यह कब होता है? –
@ जोन्ससेट ने किया! – Jon
तो कौन सा कॉल असफल रहा है - पहला या दूसरा? (यदि यह पहला है, तो चलिए पूरी तरह से तस्वीर से दूसरे को हटा दें ...) –