कहा गया था इस आलेख (How to moq a Func) से प्रश्न उठाएं और इसे अनुकूलित करें क्योंकि उत्तर सही नहीं है।मॉक को मॉक करने के लिए एक Func <> कन्स्ट्रक्टर पैरामीटर और सत्यापित करें इसे दो बार
public class FooBar
{
private Func<IFooBarProxy> __fooBarProxyFactory;
public FooBar(Func<IFooBarProxy> fooBarProxyFactory)
{
_fooBarProxyFactory = fooBarProxyFactory;
}
public void Process()
{
_fooBarProxyFactory();
_fooBarProxyFactory();
}
}
मैं एक समारोह <> है कि एक निर्माता पैरामीटर के रूप में पारित हो जाता है, ज़ोर कि समारोह कॉल दो बार था उपहास करने के लिए एक की जरूरत है।
फ़ंक्शन को मॉक करने का प्रयास करते समय var funcMock = new Mock<Func<IFooBarProxy>>();
Moq उठाता है और अपवाद करता है क्योंकि Func प्रकार mockable नहीं है।
समस्या यह है कि func का मज़ाक उड़ाए बिना यह सत्यापित करना संभव नहीं है कि func (n) बार कहा जाता है। funcMock.Verify((), Times.AtLeast(2));
मोक अब ओपी मूल रूप से करने की कोशिश कर रहा है, इसका समर्थन करता है, @ ktam33 से जवाब देखें – Mike