AutoFixture设置类内接口属性

7
如何让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.ICarInformation 创建实例,因为它是一个接口

有没有一种方法可以为该属性提供具体类型,以便 AutoFixture 可以使用?

1个回答

9

是的,您可以使用TypeRelay自定义功能

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

或者,如果您想使用Moq创建一个虚假对象,您可以使用AutoMoqCustomizationAutoConfiguredMoqCustomization


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接