Verwenden von Moq zum Verspotten eines Konstruktorparameters Func <> und Überprüfen, ob er zweimal aufgerufen wurde

Die Frage aus diesem Artikel (Wie man einen Func) und angepasst, da die Antwort nicht korrekt ist.

public class FooBar
{
    private Func<IFooBarProxy> __fooBarProxyFactory;

    public FooBar(Func<IFooBarProxy> fooBarProxyFactory)
    {
        _fooBarProxyFactory = fooBarProxyFactory;
    }

    public void Process() 
    {
        _fooBarProxyFactory();
        _fooBarProxyFactory();
    }
}

Ich muss einen Func <> verspotten, der als Konstruktorparameter übergeben wird, der behauptet, dass die Funk zweimal aufgerufen wurde.

Beim Versuch, die Funktion zu verspottenvar funcMock = new Mock<Func<IFooBarProxy>>(); Moq wird ausgelöst und Ausnahme, da der Func-Typ nicht verspottbar ist.

Das Problem ist, dass es nicht möglich ist, zu verifizieren, dass die Funk (n) mal aufgerufen wurde, ohne die Funk zu verspotten.funcMock.Verify( (), Times.AtLeast(2));

Antworten auf die Frage(3)

Ihre Antwort auf die Frage