写点什么

Microsoft Fakes——Shims 简介

  • 2012-06-26
  • 本文字数:550 字

    阅读完需:约 2 分钟

Shims 是 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

2012-06-26 04:542058
用户头像

发布了 88 篇内容, 共 266.7 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

面试官:limit 100w,10为什么慢?如何优化?

王磊

新一代客户数字化运营平台,助力品牌企业推进客户成功!

赛博威科技

快消行业 赛博威 数字化营销

天润融通解开售后维修的成本枷锁,提高维修服务效率

天润融通

天润融通大模型重塑客户服务,挖掘企业增长新空间

天润融通

Python 利用百度联想词 API 提升搜索建议功能

幂简集成

Python API

数智化转型,JNPF如何成为企业的加速器

不在线第一只蜗牛

低代码 企业转型 数智化

辛巴不能没“敌人”,快手不能没“流量”

趣解商业

网红 直播 辛巴 三只羊

数据资产入表元年,企业如何抓住数据资产增值的机遇?

袋鼠云数栈

天润融通创新服务模式,助力连锁加盟品牌突破沟通瓶颈

天润融通

LeetCode题解:1237. 找出给定方程的正整数解,枚举,详细注释

Lee Chen

倒计时7天!CCS2024大模型安全与产业应用创新研讨活动诚邀你来

百度安全

艺术与科技共鸣,TCLArt艺术电视品鉴会暨公益音乐季

Lily

​介绍一款Java开发的商业开源MES系统

万界星空科技

开源 mes #开源 开源mes mes源码

草料二维码功能上新!可以跨分区移动或复制内容了!

草料二维码

二维码 无代码 低代码平台 无代码平台 草料二维码

深度解析:基于离线开发的数据仓库转型落地案例

袋鼠云数栈

LeetCode题解:2341. 数组能形成多少数对,哈希表,详细注释

Lee Chen

linux安装docker

六哥是全栈

Linux 容器 教程 #docker

前端黑科技:使用 JavaScript 实现网页扫码功能

不在线第一只蜗牛

JavaScript 前端

TDBC回顾 | 钛铂数据肖贝贝:TapData — 自主可控

tapdata

Tapdata 实时数据平台 TapDB 国产分布式文档数据库

英特尔:最新节点上的产品设计和工艺准备进展顺利,已具备更早地过渡到Intel 18A的能力

E科讯

依然并始终相信RPA开发者的力量

八爪鱼采集器︱RPA机器人

喜报 | 新突破!望繁信科技荣获2023上海市“专精特新”企业认证

望繁信科技

数字化转型 流程挖掘 专精特新企业 流程资产 流程智能

Microsoft Fakes——Shims简介_语言 & 开发_Roopesh Shenoy_InfoQ精选文章