2016-02-14 2 views
1

Как я могу добавить свойства AutoFixture в свой объект, содержащий свойство интерфейса?Свойство интерфейса настройки AutoFixture внутри класса

public class Car : ICar 
{ 
    public string Name { get; set; } 
    public ICarinformation ContactInformation { get; set; } // problematic 
      ... 

public CarInformation: ICarinformation 
{ 
    public string Make {get; set; } // I would like these to be populated as well 
    ... 

fixture.Create() бросает:

Исключение типа 'Ploeh.AutoFixture.ObjectCreationException' произошло в Ploeh.AutoFixture.dll, но не был обработан в пользовательском коде

Дополнительная информация: AutoFixture не удалось создать экземпляр из Mediachase.Commerce.Inventory.ICarИнформация, потому что это интерфейс

Есть ли способ предоставить AutoFixture с конкретным типом для этого свойства?

ответ

5

Да, вы можете просто использовать TypeRelay настройки

fixture.Customizations.Add(
    new TypeRelay(
     typeof(ICarInformation), 
     typeof(CarInformation)); 

В качестве альтернативы, если вы хотите использовать поддельный объект, используя Moq, вы можете использовать либо AutoMoqCustomization или AutoConfiguredMoqCustomization.

+0

awesome !. это работало как шарм – ShaneKm

Смежные вопросы