Обработка несоответствий создания образца между AutoFixture и Moq

Я использую AutoMoqCustomization в моих соглашениях о тестировании.

Рассмотрим код ниже. Все прекрасно работает, пока я не добавлю конструктор в один из конкретных классов. Когда я делаю, я получаюне удалось найти конструктор без параметров ", Мы знаем, что AutoFixture нене может быть проблемы с конструктором, потому что он доставил мне тестовый объектone который оказался назначаемым из IThings ... нет провала там. Так что это должно быть moq.

Это имеет некоторый смысл, потому что я предполагаюbuilder был сгенерирован moq и передан вGetCommands метод. Так что я думаю, что вижу, что управление было передано от AutoFixture к moq в тот момент.

Это заботится о том, почему, но что мне с этим делать? Есть ли способ проинструктировать МОК о том, как бороться сThingOne или есть способ дать команду AutoFixture игнорировать moq дляIThingBuilders а вместо этого делать что нибудь Fixtury?

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

        var actual = sut.GetCommands(builder);

        Assert.Equal(1, actual.OfType().Count());
        Assert.Equal(1, actual.OfType().Count());
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос