मेरे पास एक इकाई परीक्षण है जहां मुझे एक गैर-आभासी पद्धति का मजाक उड़ाना पड़ता है जो एक बूल प्रकार देता है
public class XmlCupboardAccess
{
public bool IsDataEntityInXmlCupboard(string dataId,
out string nameInCupboard,
out string refTypeInCupboard,
string nameTemplate = null)
{
return IsDataEntityInXmlCupboard(_theDb, dataId, out nameInCupboard, out refTypeInCupboard, nameTemplate);
}
}
इसलिए मेरे पास XmlCupboardAccess
क्लास की एक नकली वस्तु है और मैं अपने परीक्षण के मामले में इस विधि के लिए मॉक सेटअप करने की कोशिश कर रहा हूं जैसा कि नीचे दिखाया गया है
[TestMethod]
Public void Test()
{
private string temp1;
private string temp2;
private Mock<XmlCupboardAccess> _xmlCupboardAccess = new Mock<XmlCupboardAccess>();
_xmlCupboardAccess.Setup(x => x.IsDataEntityInXmlCupboard(It.IsAny<string>(), out temp1, out temp2, It.IsAny<string>())).Returns(false);
//exception is thrown by this line of code
}
लेकिन यह रेखा अपवाद को फेंकती है
Invalid setup on a non-virtual (overridable in VB) member:
x => x.IsDataEntityInXmlCupboard(It.IsAny<String>(), .temp1, .temp2,
It.IsAny<String>())
किसी भी सुझाव कैसे इस अपवाद के आसपास पाने के लिए?
virtual
। Moq एक ठोस प्रकार का मजाक नहीं कर सकता है जो इसे ओवरराइड नहीं कर सकता।
XmlCupboardAccess
?