使用Mocking存储库对真实数据进行单元测试用例而非虚假数据

时间:2017-10-24 12:01:41

标签: asp.net-mvc unit-testing nunit moq testcase

我对Mocking和假对象有基本的了解,并传递了单元测试用例方法的伪数据。但我们是否有可能使用我们的存储库返回实际数据,而不是将我们自己的假数据创建到我们的单元测试方法。

我正在使用NUnit作为.Net MVC 5应用程序。如下面的示例代码行所示:

mockType.Setup(x=>x.GetUserDetails().Returns(
    new UserDetail(){ id = 1 , name = "John"}
);

所以我需要返回方法GetUserDetails的实际数据返回,而不是创建假数据(正如我们在上面的例子中所做的那样)。

我需要从DB表中获取用户详细信息,而不是像上面的示例中那样创建假的UserDetail。如果您需要更多信息,请提出您的建议并告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

测试哪些访问应用程序的其他层称为"集成测试"或"验收测试"如果你测试完整的"管道"您的应用程序UI - >数据库 - > UI。

在您的特定情况下,您需要具有与生产中使用的完全相同的模式的空数据库。

  • 插入测试用例数据
  • 执行测试
  • 断言结果
  • 清理数据库

在每次测试之后访问真实数据库,插入数据,清理数据库会使测试变得更慢 - 变慢是可以进行集成或验收测试。

为了使测试和生产数据库架构保持同步,您应该选择一些维护脚本/物流。