Lidando com inconsistências de criação de espécimes entre o AutoFixture e o Moq

Eu estou usando AutoMoqCustomization em minhas convenções de teste.

Considere o código abaixo. Tudo funciona muito bem até eu adicionar um construtor a uma das classes concretas. Quando eu faço, fico "não consegui encontrar um construtor sem parâmetros". Sabemos que o AutoFixture não tem um problema com o construtor porque ele me forneceu o objeto de testeone que provou ser atribuível a partir de IThings ... não falha lá. Então deve ser moq.

Isso faz algum sentido porque eu suponhobuilder foi gerado por moq e passou para oGetCommands método. Então, eu acho que posso ver que o controle foi passado de AutoFixture para moq nesse ponto.

Isso cuida do porquê, mas o que devo fazer sobre isso? Existe uma maneira de instruir moq sobre como lidar com oThingOne ou existe uma maneira de instruir AutoFixture para ignorar moq paraIThingBuilders e em vez disso, fazer algo Fixtury?

public class TestClass
{
    public interface IThingBuilders
    {
        T1 Build<T1>() where T1 : IThings;
    }
    public interface IThings
    {
    }
    public class ThingOne : IThings
    {
        public ThingOne(string someparam)
        {
        }
    }
    public class ThingTwo : IThings
    {
    }
    public class SomeClass
    {
        public List<IThings> GetCommands(IThingBuilders builder)
        {
            var newlist = new List<IThings>();
            newlist.Add(builder.Build<ThingOne>());
            newlist.Add(builder.Build<ThingTwo>());
            return newlist;
        }
    }
    [Theory, BasicConventions]
    public void WhyCannotInstantiateProxyOfClass(ThingOne one, ThingTwo two, IThingBuilders builder, SomeClass sut)
    {
        Assert.IsAssignableFrom<IThings>(one);
        Assert.IsAssignableFrom<IThings>(two);

        var actual = sut.GetCommands(builder);

        Assert.Equal(1, actual.OfType<ThingOne>().Count());
        Assert.Equal(1, actual.OfType<ThingTwo>().Count());
    }
}

questionAnswers(1)

yourAnswerToTheQuestion