使用 AutoMapper 创建一组测试对象

Creating a group of test objects with AutoMapper

我正在尝试创建一个数据存储库,我可以将其用于新兴汽车生产和设计公司的测试目的。

Automapper 入门问题:

在这个项目中,我有 2 个 类 大部分共享相同的属性。我不需要 Id,所以我忽略了它。

我现有的代码如下所示:

Mapper.CreateMap<RaceCar, ProductionCar>()

            .Ignore(d => d.fId)   //ignore the ID

            .ForMember(d=> d.ShowRoomName,

                               o=> o.MapFrom(s => s.FactoryName)   //different property names but same thing really

//combine into my new test car    
var testCarObject = Mapper.Map<RaceCar, ProductionCar>()

我的主要要求是: 1) 我需要创建 100 个这样的测试车对象 2) 对于我使用的每个 ProductionCar,它都需要有一个相应的 RaceCar 匹配名称(ShowRoomName & FactoryName)

那么有没有办法将其粘贴在某种类型的循环或数组中,以便我可以创建所需的 100 个?

还有,有没有办法保证每辆新的测试车都有组合的FactoryCar和RaceCar?

谢谢!

将 AutoMapper 与 AutoFixture 结合使用:

var fixture = new Fixture();

var items = Enumerable.Range(1, 100)
    .Select(i => fixture.Create<RaceCar>())
    .Select(car => new { RaceCar = car, ProductionCar = Mapper.Map<RaceCar, ProductionCar>(car))
    .ToList();

items.Profit()