Usando Moq para Mock a Func <> parâmetro construtor e verifique se foi chamado duas vezes

Levou a questão deste artigo (Como moq a Func) e adaptou como a resposta não está correta.

public class FooBar
{
    private Func<IFooBarProxy> __fooBarProxyFactory;

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

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

Eu tenho a necessidade de zombar de um Func <> que é passado como um parâmetro construtor, a afirmação de que o func foi chamado duas vezes.

Ao tentar zombar da funçãovar funcMock = new Mock<Func<IFooBarProxy>>(); Moq aumenta e excede como o tipo Func não é mockable.

A questão é que sem zombar do func não é possível verificar se o func foi chamado (n) vezes.funcMock.Verify( (), Times.AtLeast(2));

questionAnswers(3)

yourAnswerToTheQuestion