【发布时间】:2018-04-05 08:05:42
【问题描述】:
我在接口上有一个方法:
string GetUserDetails(string whatever);
我想用 MOQ 模拟它,以便它返回方法返回的任何内容,即用户详细信息 - 类似于:
_mock.Setup( theObject => theObject.GetUserDetails( It.IsAny<string>( ) ) )
.Returns( [object return by GetUserDetails method] ) ;
有什么想法吗?
【问题讨论】:
-
您可以做所谓的部分模拟并使用此方法的具体实现,但您肯定最好只模拟返回值吗?而是按照您的示例建议设置您的方法以返回一些任意字符串。模拟的重点是将被测代码与其依赖项隔离开来。
-
是的,我理解你的意思,但我们需要实际使用从数据库(从存储库)返回的实际数据集,而不是创建我们自己的模拟数据来实现单元测试用例。 s
-
在这种情况下,您不是在编写单元测试,而是需要编写集成测试。在这种情况下,起订量不是您所需要的。您不想在这条路线上走得更远,在这里使用部分模拟,后果自负。我建议也许阅读测试金字塔以及单元测试和集成测试之间的区别。
-
是的!我想我需要就此与我的技术负责人谈谈 .. 谢谢!
-
别担心,好主意,我希望它对你有用
标签: unit-testing mocking nunit moq ninject.web.mvc