2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:542146
用户头像

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

关注

评论

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

Linux zip命令:压缩文件或目录

芯动大师

Mac系统的防病毒软件推荐Antivirus Zap - Virus Scanner 最新中文版

胖墩儿不胖y

Mac软件 杀毒软件 mac系统维护软件

编程和数学计算软件MATLAB R2023b for Mac

展初云

Mac matlab Mac软件

Java基础面试题【MyBatis】

派大星

Java 面试题

CodeWhisperer 初体验

亚马逊云科技 (Amazon Web Services)

Python 人工智能 sql 云上探索实验室 Amazon CodeWhisperer

记一次老商家端应用内存突然飚高原因分析 | 京东物流技术团队

京东科技开发者

企业号10月PK榜 fullGC 内存飙升

逻辑漏洞挖掘之CSRF漏洞原理分析及实战演练 | 京东物流技术团队

京东科技开发者

CSRF 安全测试 漏洞分析 逻辑漏洞 企业号10月PK榜

OPPO Find N3,解码“新商务场景”

脑极体

OPPO

mybatis plus很好,但是我被它坑了!

越长大越悲伤

Java MySQL mybatis Mybatis Plus

Java模块化应用实践之精简JRE | 京东云技术团队

京东科技开发者

Java jre 企业号10月PK榜 Java21

PHP/MySQL开发本地服务器 MAMP Pro for Mac

展初云

Mac软件 开发软件 MAMP

VMware Workstation 17安装教程:安装系统

小齐写代码

超实用的企业防范数据泄露小技巧!

行云管家

数据 数据安全 数据泄露 企业数据

浅谈搜索展现层场景化技术-tanGo实践

百度Geek说

企业号10月PK榜 搜索场景化 展现层技术 阿拉丁

App 支付报错“商家订单参数异常,请重新发起付款“排查流程

盐焗代码虾

支付宝 支付宝报错 排查思路 APP支付

中移链浏览器简介

BSN研习社

两种情况下 不能放弃云计算! | David Hansson

B Impact

ES6新特性(六)

阡陌r

JavaScript import ES6 export 模块化

好用的全局代理客户端 Proxifier for Mac

展初云

Mac 代理 Mac软件 Proxifier

Linux 性能调优之网络优化

山河已无恙

网络优化 网络性能优化 10月月更

Linux tar打包命令

芯动大师

文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题

福大大架构师每日一题

福大大架构师每日一题

@所有人,2023开放原子开发者大会议题征集火热进行中!

开放原子开源基金会

开源 开发者大会

赣州有资质等保测评机构有几家?咨询电话多少?

行云管家

等保 等级保护 等保测评 赣州

Linux环境变量及作用

芯动大师

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