本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2012/06/deep-dive-fakesShims是Microsoft Fakes Framework的一部分,支持测试时的方法拦截——包括框架方法。它实现了侵入性更小的单元测试,Rich Czyzewski在其名为“Noninvasive Unit Testing in ASP.NET MVC4 – A Microsoft Fakes Deep Dive”的文章中对其进行了介绍。
那么到底何为非侵入测试呢?Rich举了一个简单的例子,目前对FormsAuthentication.SignOut()的调用需要包装到单独的一个类中,这样就可以对调用对象进行单元测试了,因为FormsAuthentication依赖于HttpContext,而后者在运行测试时还尚未初始化。这就是侵入式的,因为这要求调整设计,目的仅仅是为了测试。
另一方面,Shims可以拦截到对FormsAuthentication.SignOut()的调用,然后调用我们自己的实现——这样就不必仅仅为了测试的目的对类进行包装,同时还降低了测试的侵入性。
对于Microsoft Fakes Framework新手来说,Shim Types可用于拦截并替换下面所有类型的方法调用:
- 静态方法
- 实例方法(针对所有实例或是某个特定实例)
- 正常与静态的构造方法
除了模拟类之外,Shims还可以绑定到接口上。
Fakes Framework可与任何单元测试框架搭配使用,包括NUnit。Rich还对VS 2010引入的Moles技术与VS 11引入的Fakes进行了详尽的对比,他们之间的某些特性是非常相似的。
查看英文原文:Deep Dive With Microsoft Fakes – Shims
分享到:
相关推荐
Better Unit Testing With Microsoft Fakes
Microsoft Fakes 中的代码生成、编译和命名约定,microsoft.qualitytools.testing.fakes.dll资源下载
Better Unit Testing with Microsoft® Fakes Developers! Developers! Developers! We expect the majority of our audience to be developers. We will cover some basics concerning unit testing but ...
Microsoft Fakes Demo ,提供了一个使用Microsoft Fakes Demo简单的入门Demo. Microsoft Fakes可以对各种级别的方法进行隔离,而无须强制使用接口,因此在修改已有代码具有一定优势。可以作为Moq等隔离框之外的一个...
提供一个简单的Demo,对Microsoft Fakes与Moq框架进行比较,便于入门参考。
fakes3-泊坞窗 最小(20 Mb)基于Alpine Linux的fakes3 Docker映像。 公开端口80,并使用/srv/fakes3作为持久性卷。 将/usr/bin/fakes3用作入口点,并带有默认标志-r /srv/fakes3 -p 80 。 您可以在启动容器时通过...
docker-fakes3 运行 fakes3 的 ubuntu 容器
Machine.Fakes是在Machine.Specification之上构建的一个小框架,可以最好地描述为Machine.Specifications与不同的模拟/伪造/替代框架之间的扩展集成层。 Machine.Fakes试图通过帮助减少规范中许多典型的与虚假框架...
信息安全_数据安全_Deep Fakes Are Getting Terrifyin 安全可信 信息保护 安全防护 安全实践 安全对抗
「渗透测试」Losing Our Reality How Deepfakes Threaten Businesses and Global Markets - 安全热点 系统安全 安全运营 威胁情报 物联网安全 数据安全
「漏洞预警」Deep Fakes Are Getting Terrifyingly Real How Can We Spot Them - 安全培训 安全建设 端点安全 技术分析安全体系 技术分析
浙商证券:AI安全系列-以子之矛-攻子之盾-从deepfakes深度伪造技术看AI安全
AI安全系列-以子之矛-攻子之盾-从deepfakes深度伪造技术看AI安全-浙商证券.pdf
#fakes-rspec 这是一个在使用时帮助使用的库。 它添加了一堆方便的方法和匹配器,以帮助使用 AAA 风格的隔离库。 ##安装 gem install fakes-rspec 或者(最好使用 bundler),在你的 gemfile 中: source ...
揭露电报伪造、克隆、骗局和阴谋运动的黑暗面_Uncovering the Dark Side of Telegram Fakes, Clones, Scams, and Conspiracy Movements.pdf
资源分类:Python库 所属语言:Python 资源全名:yaqd_fakes-2020.10.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Microsoft Fakes 的异步感知默认存根行为 Microsoft Fakes 的内置默认存根行为将从异步方法返回null任务。 提供AsyncAwareDefaultValueStubBehavior类型。 推荐的用法是将异步感知默认存根行为应用于项目中的所有...
该项目的目的是演示如何在您的系统中有效实施Fakes。 在此示例中,我们要用Fake替换的外部系统是 ,这是一个用于测试和原型制作的API。 该示例如何工作的一般工作流程是: 一个请求进入应用程序 然后将其传递给...
npm i --save-dev waterline-fakes 接口 var waterlineFakes = require ( 'waterline-fakes' ) ; /* => { fakeWaterlineChainMethod: function () {}, fakeWaterlineModel: function () {} } */ 使用 ...