亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一種在 ASP.NET Core 中的集成測試,使用 EF 和 AutoMapper

一種在 ASP.NET Core 中的集成測試,使用 EF 和 AutoMapper

C#
忽然笑 2021-08-22 17:39:49
我正在嘗試通過包含 AutoMapper 使用的存儲庫測試從我的 ASP.NET Core 控制器到數據庫的路徑。這是我的存儲庫:using System;using System.Linq;using AutoMapper;using DS.DTO.MasterData;using DS.Utilities.DSExceptions;using Microsoft.Extensions.Logging;using Omu.ValueInjecter;namespace DS.MasterData.Repositories{    public class PersonFactRepository : IPersonFactRepository    {        private readonly Database.MasterDataContext dbContext;        private readonly ILogger<PersonFactRepository> logger;        private readonly IMapper mapper;        public PersonFactRepository(ILogger<PersonFactRepository> logger, Database.MasterDataContext dbcontext, IMapper mapper)        {            this.dbContext = dbcontext;            this.mapper = mapper;            this.logger = logger;        }        public PatientDto CreatePatient(CreatePatientDto inModel)        {            var dbPersonDim = mapper.Map<CreatePatientDto, Database.PersonDim>(inModel);            var dbAddressDim = mapper.Map<CreatePatientDto, Database.AddressDim>(inModel);            var dbPhoneDim = mapper.Map<CreatePatientDto, Database.PhoneDim>(inModel);            var dbPersonFact = new Database.PersonFact { FactId = Guid.NewGuid() };            dbPersonDim.PersonFact = dbPersonFact;            dbAddressDim.PersonFact = dbPersonFact;            dbPhoneDim.PersonFact = dbPersonFact;        }    }}我的問題是如何將我的 Mapper 配置放入我的 fakeMapper 中?var inMemDB = Fakes.FakeDB.DB;var loggerCntl = Substitute.For<ILogger<Controllers.PatientController>>();var loggerPersonFactRepo = Substitute.For<ILogger<Repositories.PersonFactRepository>>();AutoMapper.IMapper fakeMapper = ????var personRepo = new PersonFactRepository(loggerPersonFactRepo, inMemDB, fakeMapper);我有意進行集成測試,因為我希望我的測試能夠將數據發布到控制器并測試正確的數據是否最終出現在正確的表中。
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

創建映射器提供程序


public class MapperProvider

{

    public MapperProvider() { 


    }

    public MapperConfiguration GetMapperConfig()

    {

        var mce = new MapperConfigurationExpression();

        mce.AddProfile<AutoMapperConfig>();

        var mc = new MapperConfiguration(mce);

        return mc;

    }

}

注冊映射配置


AutoMapper.IMapper fakeMapper = new Mapper(new 

    MapperProvider().GetMapperConfig());


查看完整回答
反對 回復 2021-08-22
  • 1 回答
  • 0 關注
  • 214 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號