所以我必须为我的数据检索创建一个单元测试,我想要得到的对象非常大。 我有" GetbyId" (在那里我们检索了dataobject和映射)。 我发现创建2个单元测试会更好:
我们已经创建了一些测试示例,并且我正在检查具有测试实体的已保存xmls的实体,因此我们非常灵活。 我的问题在于映射,因为我的模型确实有一些接口我无法对其进行序列化,而且我不想对每个示例解决方案进行硬编码(因为它们也非常多)
有谁知道如何更好地测试mapper?
Ps:我知道,我很擅长解释事情,对不起。
编辑:
这里有一个例子:由于IContact在人身上,我无法对其进行序列化,所以我不知道如何轻松地检查它(这个模型就是一个例子,真实的是大约200行而不计算孩子来自接口的行)
public Person: IPerson
{
public Name {get; set;}
public IContact {get; set;}
}
public Contact: IContact
{
public Phone {get; set;}
}
答案 0 :(得分:0)
通常我会对这些情况使用Compare.net:
//arrange:
var expected = new Person{ Name = "Alice", Contact = new Contact(){Phone = ""}};
CompareLogic compareLogic = new CompareLogic();
//act:
var result = target.GetbyId(1);
//assert:
Assert.IsTrue(compareLogic.Compare(expected, result).AreEqual);
另一种选择是使用Fluent Assertions(对于完全披露我没有使用此工具的经验......)
还有一个选择是创建一个用于断言的辅助方法,然后在每个测试中重用它。