管理复杂的单元测试模拟数据

时间:2017-09-13 19:15:27

标签: c# entity-framework unit-testing moq

我想对依赖于相当复杂的数据库结构(嵌套,循环引用等)的代码进行单元测试。通常我会做这样的事情:

var personRepository = new Mock<IPersonRepository>();
personRepository.Setup(r => r.GetPerson()).Returns(
new Person() 
{ 
    FirstName = "Joe",
    LastName = "Smith"
});

我的“复杂”数据的问题是我觉得我的测试变得混乱了模拟数据。我有什么选择?我想将数据保存为.json文件,我想这可行。理想情况下,我想使用数据库快照的内存表示。是否可以使用EF6?还有其他建议吗?

1 个答案:

答案 0 :(得分:2)

您可能需要查看Effort,它旨在让您对使用Entity Framework的代码进行单元测试。

它将查看您的数据库并构建一个内存版本,其行为类似于真实内容,但可以为每个测试重新创建。然后,您可以编写一些代码,用您的数据填充伪数据库,允许您对其进行测试。