मैं सी #, एंटिटीफ्रेमवर्क 4 और मोक 4 के साथ .NET 4 का उपयोग कर रहा हूं। मैं अपने यूनिटऑफवर्क, रिपोजिटरी और अंत में एक विधि कॉल का मज़ाक उड़ा रहा हूं।यूनिवर्सोफवर्क रिपोजिटरी के साथ लैम्ब्डा मॉकिंग की समस्या
T GetFirst(Expression<Func<T, bool>> query = null,
Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null);
CField:
यहाँ कोड
var unitOfWorkMock = new Mock<UnitOfWork>();
var cFieldRepositoryMock = new Mock<IRepository<CField>>();
System.Linq.Expressions.Expression<Func<CField, bool>> query = (x) => x.CID == c && x.FID == parentFID;
cFieldRepositoryMock.Setup(x => x.GetFirst(query));
GetFirst हस्ताक्षर विधि के साथ मैं मुसीबत हो रहा है
public class CField
{
public CField()
{
//do stuff
}
public int ID { get; set; }
public int FID { get; set; }
public int CID { get; set; }
}
क्या मैं होने की अपेक्षा: मैं मैं उम्मीद कर रहा हूं कि wheh मैं अपने cFieldRepositoryMock की GetFirst विधि को कॉल करता हूं, यह matc होगा एच लैम्ब्डा अभिव्यक्ति मैं सेटअप में परिभाषित अभिव्यक्ति के खिलाफ पास करता हूं।
क्या हो रहा है: मैं सेटअप काम पर एक संकलक त्रुटि हो रही है:
मैं स्पष्ट रूप से कुछ गलत कर रहा हूँ "अभिव्यक्ति पेड़ एक फोन या मंगलाचरण वैकल्पिक तर्क का उपयोग करता है शामिल नहीं हो सकता", मैं कर रहा हूँ बस यकीन नहीं है कि क्या। किसी भी सलाह की सराहना की जाती है, मैं यूनिट परीक्षण के लिए बिल्कुल नया हूं।
धन्यवाद! AFrieze
आप पोस्ट कर सकते हैं घोषणा अगर सीएफआईल्ड और getfirst (विधि) के विधि हस्ताक्षर? – David
हाय डेविड, मैंने अनुरोध की गई जानकारी को जोड़ा। मैं पूरी सीएफआईल्ड कक्षा पोस्ट करने में असमर्थ हूं इसलिए मैंने प्रासंगिक क्षेत्रों को सही प्रकार और पहुंच के स्तर के साथ पोस्ट किया। – AFrieze
क्या आपने आदेश के लिए तर्क जोड़ने का प्रयास किया है (Arg.IsAny <...> या शून्य)? मुझे बिल्कुल नहीं पता लेकिन मुझे लगता है कि मोक अभिव्यक्तियों का उपयोग कर रहा है और मुझे लगता है कि आपको यहां * सभी * तर्क प्रदान करना होगा। – Carsten