【发布时间】:2018-04-05 05:22:04
【问题描述】:
我对 Mocking 和假对象有基本的了解,并为单元测试用例方法传递假数据。但是我们是否可以使用我们的存储库返回的实际数据,而不是为我们的单元测试方法创建我们自己的假数据。
我将 NUnit 用于 .Net MVC 5 应用程序。如下示例代码行所示:
mockType.Setup(x=>x.GetUserDetails().Returns(
new UserDetail(){ id = 1 , name = "John"}
);
所以我需要从方法 GetUserDetails 返回实际数据,而不是创建假数据(就像我们在上面的示例中所做的那样)。
我需要从 DB 表中获取用户详细信息,而不是像上面示例中那样创建虚假的 UserDetail。请提供您的建议,如果您需要更多信息,请告诉我。
提前致谢。
【问题讨论】:
-
如果你想让GetUserDetails()从你的数据库返回数据,你不需要模拟它,你为什么不像平常一样设置一个测试数据库呢?
-
你给出了一个好主意,但是每次我们的原始数据库发生变化时,我们都需要在我们的测试数据库中做同样的变化。只是让您知道,我们可以在除生产之外的所有环境中使用我们的实际数据库而没有任何问题。
-
另外,我想知道如何从我们的存储库方法(已编写)中获取数据,以创建假数据对象。如果我没有道理,请告诉我。
-
好吧,如果已经写好了,那就用吧,按照你正常使用的方式,把你的测试项目的连接字符串改一下就行了。
-
那么,如果您想使用更新数据中的数据运行测试,只需在运行测试之前复制它即可。
标签: asp.net-mvc unit-testing nunit moq testcase