什么是嘲讽?                                                                                                    .


当前回答

如果您的模拟涉及网络请求,另一种替代方法是使用真正的测试服务器。您可以使用服务为您的测试生成请求和响应。

其他回答

在SO网站上有很多关于嘲讽的答案,网上也有很多关于嘲讽的好帖子。你可能想从Martin Fowler的文章开始看,他在文章中讨论了很多关于嘲讽的想法。

mock是一种特殊的技术,可以在不依赖依赖项的情况下测试代码单元。一般来说,mock与其他方法的区别在于用于替换代码依赖关系的mock对象将允许设置期望—mock对象将知道您的代码如何调用它以及如何响应。


你最初的问题提到了TypeMock,所以我把我的答案留在下面:

TypeMock是一个商业模拟框架的名称。

它提供了免费模拟框架(如RhinoMocks和Moq)的所有功能,以及一些更强大的选项。

你是否需要TypeMock是有很大争议的——你可以用免费的模拟库做你想做的大部分模拟,很多人争论说TypeMock提供的功能常常会让你远离封装良好的设计。

正如另一个回答所说,“TypeMocking”实际上不是一个定义的概念,但可以理解为TypeMock提供的模仿类型,使用CLR分析器在运行时拦截。net调用,提供更大的伪造对象的能力(而不是需要接口或虚拟方法之类的需求)。

我认为TypeMock隔离器模仿框架的使用应该是TypeMocking。

它是一种生成模拟以用于单元测试的工具,无需在编写代码时考虑IoC。

如果您的模拟涉及网络请求,另一种替代方法是使用真正的测试服务器。您可以使用服务为您的测试生成请求和响应。

Mock是以可控的方式模拟真实方法/对象的行为的方法/对象。模拟对象用于单元测试。

测试下的方法通常会调用它内部的其他外部服务或方法。这些被称为依赖关系。一旦模拟,依赖项就会按照我们定义的方式运行。

由于依赖项由mock控制,我们可以很容易地测试我们编写的方法的行为。这就是单元测试。

模拟对象的目的是什么?

mock vs stub

单元测试vs功能测试

模拟是为测试生成模拟真实对象行为的伪对象