使用 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()
我正在尝试创建一个数据存储库,我可以将其用于新兴汽车生产和设计公司的测试目的。
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()