gpt4 book ai didi

c# - Automapper 单元测试失败

转载 作者:行者123 更新时间:2023-11-30 20:02:12 25 4
gpt4 key购买 nike

我刚刚决定试用 Automapper。

我在我的项目中编写了一些单元测试,当我“全部运行”时,它们都按预期通过了。但是,当我运行单独的测试时,它们失败了……所以,我是否缺少一些特殊的设置?

这是代码。这在我运行所有时通过了测试。

 [TestMethod]
public void Mappings_ConfigureMappings_pass()
{
Mapper.CreateMap<Address, AddressDTO>();
Mapper.AssertConfigurationIsValid();
}

但是当我运行实际的映射测试时,测试失败了。

[TestMethod]
public void Mappings_ViewModel_Address_ToDTO_pass()
{

var address = new Address()
{
Address1 = "Line1",
Address2 = "Line2",
Address3 = "Line3",
Country = "ROI",
County = "Co Dublin",
PostCode = "ABC",
TownOrCity = "Dublin"
};

AddressDTO addressDTO = Mapper.Map<Address, AddressDTO>(address);
Assert.IsNotNull(addressDTO);
Assert.AreEqual("ROI", addressDTO.Country);
Assert.AreEqual("Dublin", addressDTO.TownOrCity);
}

这里是相关的类...如您所见,它们是相同的,那么为什么测试失败了?是我在设置中遗漏了什么吗?

public class Address 
{
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string County { get; set; }
public string Country { get; set; }
public string PostCode { get; set; }
public string TownOrCity { get; set; }
}

public class AddressDTO
{
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string County { get; set; }
public string Country { get; set; }
public string PostCode { get; set; }
public string TownOrCity { get; set; }
}

这是失败信息:

Missing type map configuration or unsupported mapping.

Mapping types:
Address -> AddressDTO
UI.Address -> Services.DataTransferObjects.AddressDTO

Destination path:
AddressDTO

Source value:
UI.Address

最佳答案

问题是您在测试中配置映射并期望另一个测试使用此配置。

考虑到它们应该是独立的,因此一个测试不能依赖于其他测试执行。这真的很重要

您需要在 Mappings_ViewModel_Address_ToDTO_pass 或通用设置上创建映射。

关于c# - Automapper 单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com