मैं DbSet
को link का उपयोग करके एमओक के साथ इकाई ढांचे से नकल करने में सक्षम हूं।Moq इकाई फ्रेमवर्क कैसे करें SqlQuery
हालांकि, अब मैं जानना चाहूंगा कि मैं SqlQuery पर कॉल कैसे कर सकता हूं। यह सुनिश्चित नहीं है कि यह संभव है या कैसे यह मॉक डीबी संदर्भ पर निर्भर करता है कि यह जानने के लिए कि "क्वेरी" क्या कहा जा रहा है।
नीचे मैं जो नकल करने की कोशिश कर रहा हूं।
var myObjects = DbContext.Database
.SqlQuery<MyObject>("exec [dbo].[my_sproc] {0}", "some_value")
.ToList();
मैंने वर्तमान में कुछ भी कोशिश नहीं की है क्योंकि यह नहीं पता था कि इस उदाहरण को कैसे शुरू करना है।
DbSet
का मजाक और फिर से पुनरावृति करने के लिए, मैं सही ढंग से लौटने MyObject
के DbSet
नकली कर सकते हैं की लेकिन अब एक SqlQuery कि MyObject
की सूची लौटाता है उपहास करने के लिए कोशिश कर रहा हूँ के नीचे है।
var dbContext = new Mock<MyDbContext>();
dbContext.Setup(m => m.MyObjects).Returns(mockObjects.Object);
dbContext.Setup(m => m.Database.SqlQuery... something along these lines
यह मेरे लिए महान काम किया। मेरे लिए, यह एक सहायक में पूछताछ तर्क को दूर करने के लिए बेहतर था, जैसे ऊपर दिए गए स्वीकृत उत्तर में। – JamesWampler