का उपयोग करके एक नकली में अभिव्यक्ति कैसे सेट करें I इस विषय के बारे में कई अन्य QA पढ़ चुके हैं और मुझे अभी भी मेरी समस्या का हल नहीं मिल रहा है, इसलिए मैं मेरे मामले का पर्दाफाश करने का फैसला किया है।Moq.Mock <अभिव्यक्ति <Func<T,bool> >>() - Moq
मैं इस इंटरफेस है
public interface IRepository<T> where T : class, IEntity
{
IQueryable<T> Find(Expression<Func<T, bool>> predicate);
T FindIncluding(int id, params Expression<Func<T, object>>[] includeProperties);
}
और यह
public PeopleController CreatePeopleController()
{
var mockUnitofWork = new Mock<IUnitOfWork>();
var mockPeopleRepository = new Mock<IRepository<Person>>();
mockPeopleRepository.Setup(r=>r.Find().Returns(new Person(){});
mockUnitofWork.Setup(p => p.People).Returns(mockPeopleRepository.Object);
return new PeopleController(mockUnitofWork.Object);
}
मैं सेटअप नकली का उपयोग करने के प्रयास कर रहे हैं सेटअप करने के लिए विधि है कि नकली होता है कि मैं चाहूँगा की बुनियादी संरचना है इस तरह से:
public PeopleController CreatePeopleController()
{
var mockUnitofWork = new Mock<IUnitOfWork>();
var mockPeopleRepository = new Mock<IRepository<Person>>();
mockPeopleRepository.Setup(r=>r.Find(It.isAny<Expression<Func<Person,bool>>>()).Single()).Returns(new Person(){});
mockUnitofWork.Setup(p => p.People).Returns(mockPeopleRepository.Object);
return new PeopleController(mockUnitofWork.Object);
}
लेकिन सिस्टम हमेशा एक ही अपवाद फेंकता "System.NotSup portedException: अभिव्यक्ति के लिए एक विधि है कि मज़ाक उड़ाया वस्तु से संबंधित नहीं है .... "
इसके अलावा, मैं जोड़ने के लिए है कि मैं MSTest और Moq
उपयोग कर रहा हूँ मुझे पता है कि सेटअप एक नकली अभिव्यक्ति का उपयोग नहीं है चाहते हैं को संदर्भित आसान और अनुशंसित नहीं है, लेकिन यह मेरे लिए बहुत महत्वपूर्ण है क्योंकि "ढूंढें" एक तरीका है जिसे मैं अपने ऐप
एरिक बस .. अपने समाधान और उसके काम को लागू करने के लिए धन्यवाद अपने मदद!!! :) – gustavotroconis
खुशी है कि यह मदद की। :) –
@ गुस्तावोट्रोक्रोनिस अगर इस उत्तर ने आपकी समस्या हल की है, तो आप इसे इसके आगे के चेकमार्क पर क्लिक करके स्वीकार कर सकते हैं। जैसे ही आप अधिक प्रश्न पूछते हैं, आपके अवतार के नीचे "स्वीकृति%" दिखाई देगा, और उच्च% दूसरों को आपके प्रश्नों के उत्तर देने के लिए प्रोत्साहित करता है। –