Używając Moq do Mocka parametru konstruktora Func <> i sprawdź, czy został wywołany dwukrotnie

Pytanie z tego artykułu (Jak moq a Func) i dostosowałem go, ponieważ odpowiedź jest niepoprawna.

public class FooBar
{
    private Func<IFooBarProxy> __fooBarProxyFactory;

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

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

Muszę wykończyć Func <>, który jest przekazywany jako parametr konstruktora, twierdząc, że func był wywołany dwukrotnie.

Podczas próby wyśmiewania funkcjivar funcMock = new Mock<Func<IFooBarProxy>>(); Moq podnosi i wyjątek, ponieważ typ Func nie jest kpiący.

Problem polega na tym, że bez kpienia z func nie jest możliwe sprawdzenie, czy func został wywołany (n) razy.funcMock.Verify( (), Times.AtLeast(2));

questionAnswers(3)

yourAnswerToTheQuestion