AutoMapper:在单元测试中调用ProjectTo时无法工作。
创始人
2024-09-23 17:00:47
0

在单元测试中调用AutoMapper的ProjectTo方法时无法正常工作的问题通常是因为在单元测试环境中缺少必要的初始化步骤。

以下是解决这个问题的可能方法:

  1. 初始化AutoMapper配置:确保在执行ProjectTo方法之前,已经正确地初始化了AutoMapper配置。这通常涉及调用Mapper.Initialize方法,并在其中配置映射关系。在单元测试的SetUp或Before方法中执行初始化步骤。
[TestFixtureSetUp]
public void SetUp()
{
    Mapper.Initialize(cfg =>
    {
        cfg.CreateMap();
    });
}
  1. 使用AutoMapper的Profile:创建一个继承自AutoMapper的Profile类,并在其中配置映射关系。在单元测试的SetUp或Before方法中执行Profile的注册。
public class MappingProfile : Profile
{
    public MappingProfile()
    {
        CreateMap();
    }
}

[TestFixtureSetUp]
public void SetUp()
{
    Mapper.Initialize(cfg =>
    {
        cfg.AddProfile();
    });
}
  1. 使用AutoMapper的DI集成:如果项目中已经使用了依赖注入(DI)容器,可以考虑使用AutoMapper的DI集成。这样,可以在单元测试中直接注入IMapper对象,并使用它执行映射操作。
[TestFixtureSetUp]
public void SetUp()
{
    var services = new ServiceCollection();
    services.AddAutoMapper(typeof(Startup)); // 注册AutoMapper

    var serviceProvider = services.BuildServiceProvider();
    _mapper = serviceProvider.GetRequiredService();
}
  1. 使用AutoMapper的静态方法:如果在单元测试中无法使用DI容器,可以直接使用AutoMapper的静态方法进行映射操作。在单元测试中手动创建映射配置,并调用Map方法执行映射操作。
[Test]
public void TestMethod()
{
    Mapper.Initialize(cfg =>
    {
        cfg.CreateMap();
    });

    var source = new Source();
    var destination = Mapper.Map(source);

    // 执行断言
}

通过以上方法的一种或多种组合,您应该能够在单元测试中成功调用AutoMapper的ProjectTo方法。请根据您项目的实际情况选择适合的解决方案。

相关内容

热门资讯

今日科普!微信卡五星辅助器,微... 今日科普!微信卡五星辅助器,微乐自建房脚本免费入口(开挂自建房)攻略;1.微信卡五星辅助器 选牌创建...
重大通报!微乐自建房辅助工具挂... 重大通报!微乐自建房辅助工具挂,微乐小程序免费黑科技(开挂自建房)app1、打开软件启动之后找到中间...
让我来分享经验!微乐自建房辅助... 让我来分享经验!微乐自建房辅助工具免费app,微乐自建房脚本免费入口(开挂自建房)脚本1、微乐自建房...
记者揭秘!微乐小程序自建房辅助... 记者揭秘!微乐小程序自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)软件微乐小程序自建房辅助...
必看攻略!微乐自建房辅助工具免... 必看攻略!微乐自建房辅助工具免费app,微乐家乡麻将自建房辅助app(开挂自建房)攻略1、每一步都需...
必备攻略!微乐家乡麻将自建房辅... 必备攻略!微乐家乡麻将自建房辅助app,微乐家乡麻将自建房辅助app(开挂自建房)技巧1、必备攻略!...
查到实测辅助!微信卡五星辅助器... 查到实测辅助!微信卡五星辅助器,微乐家乡麻将自建房辅助app(开挂自建房)教程1、超多福利:超高返利...
传递经验!微乐自建房辅助工具挂... 传递经验!微乐自建房辅助工具挂,微乐小程序免费黑科技(开挂自建房)技巧1、操作简单,无需微乐自建房辅...
一分钟教你!微信卡五星辅助器,... 一分钟教你!微信卡五星辅助器,微乐家乡麻将自建房辅助app(开挂自建房)插件1、这是跨平台的微乐家乡...
传递经验!微乐小程序自建房辅助... 传递经验!微乐小程序自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)脚本传递经验!微乐小程序...