如何测试非常大的对象的数据映射器

时间:2018-09-11 11:22:06

标签: c# unit-testing testing automapper data-mapping

我有一个非常大的类(500多个属性和嵌套的复杂对象),并且我们正在映射到具有相同属性的另一个类,即它是一对一的映射。

请不要评论我们为什么这样做(长话长说-这是一个遗留系统,正在重新架构中,这是下一步重构服务的垫脚石)-和为什么不使用automapper等。数据映射是用C#手工编码的。

我可以创建一个测试对象,映射并比较该映射对象,但是要填充的属性太多,这本身就是我们希望避免的主要任务。

关于我是否可以使用反射或序列化/反序列化或某些测试库,或者可能以某种方式使用自动映射器填充对象,映射和比较的任何想法?

我们需要确保a)所有属性都已映射,b)每个属性都已映射到正确的属性(每个对象上的属性都命名为相同)

我怀疑手动进行代码审查可能是唯一可行的解​​决方案,但我正在伸出援手...

更新 好的,不知道为什么人们对此表示反对。对于某些潜在的复杂技术解决方案,这是一个有效的问题。感谢您对我们的建议提出了宝贵的建议!

1 个答案:

答案 0 :(得分:0)

  

关于我是否可以使用反射或序列化/反序列化或某些测试库,或者可能以某种方式使用自动映射器填充对象,映射和比较的任何想法?

您可以只使用一个序列化器来序列化一个对象,然后反序列化另一个对象。如果您的对象是不执行奇异工作的普通数据类,则可能是三到五行。