Automapper ValueConverter的单元测试用例,模拟的映射器未返回预期模型

我已经编写了valueconverter并为此编写了一个测试用例。当我将模拟的映射器传递到解析上下文时,它的行为不符合设置。 这是我的代码-

转换器-

public class AirlineConverter : IValueConverter<string,Airline>
{
    public Airline Convert(string sourceMember,ResolutionContext context)
    {
        var airlines = context.Options.Items["automap_airlines"] as List<EngineContract.Airline>;

        var airline = airlines.Find(airLine => airLine.Code == sourceMember);

        return context.Mapper.Map<Airline>(airline);
    }
}

测试用例-

        [Theory]
    [JsonFileData("airlines.json")]
    public void Translate_Engine_Airline_ViewModel_Airline(string airlines)
    {
        var airlinesList = JsonConvert.DeserializeObject<List<EngineContract.Airline>>(airlines);

        var mappingOperationmock = new Mock<IMappingOperationOptions<string,Airline>>(MockBehavior.Strict);
        mappingOperationmock.Setup(x => x.Items).Returns(new Dictionary<string,object>() { { "automap_airlines",airlinesList } });

        var airlineConverter = new AirlineConverter();

        var mockMapper = new Mock<IRuntimeMapper>();
        
       mockMapper.Setup(x => x.Map<Airline>(It.IsAny<EngineContract.Airline>())).Returns(
         new Airline() { Code = "AA" }
       ); //not getting this object in AirlineConverter in response of context.Mapper.Map<Airline>(airline);

        var resolutionContext = new ResolutionContext(mappingOperationmock.Object,mockMapper.Object);

        var convertedAirline = airlineConverter.Convert("AA",resolutionContext);

        Assert.Equal("AA",convertedAirline.Code);
    }

我对context.Mapper.Map(airline);的响应为空;在AirlineConverter中。 怎么了?

iCMS 回答:Automapper ValueConverter的单元测试用例,模拟的映射器未返回预期模型

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1566606.html

大家都在问