Обработка несоответствий создания образца между 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());
}
}