繁体   English   中英

C#单元测试:从存储库中检索数据

[英]C# Unit Test: Retrieve Data from Repository

所以我必须为我的数据检索创建一个单元测试,我想要获得的对象非常大。 我有“GetbyId”的存储库(在那里我们检索了dataobject和映射)。 我发现创建2个单元测试会更好:

  1. 检索数据对象
  2. 映射到我的模型

我们已经创建了一些测试示例,并且我正在检查具有测试实体的已保存xmls的实体,因此我们非常灵活。 我的问题在于映射,因为我的模型确实有一些接口,我无法对其进行序列化,我不想对每个示例解决方案进行硬编码(因为它们也非常多)

有谁知道如何更好地测试映射器?

Ps:我知道,我非常擅长解释事情,对不起。

编辑:

这里有一个例子:由于IContact在Person中我无法序列化它所以我不知道如何轻松地检查它(这个模型是一个例子,真实的是大约200行大而不计算接口中的子行)

public Person: IPerson 
{
    public Name {get; set;}
    public IContact {get; set;}
}

public Contact: IContact
{
    public Phone {get; set;} 
}

通常我会使用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 (对于完整的披露,我没有使用此工具的经验...)

还有一个选择是创建一个用于断言的辅助方法,然后在每个测试中重用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM