写点什么

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

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

关注

评论

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

春节期间消费行业收入大涨:企业如何抓住私域运营优化机会?

Geek_2d6073

直播回顾 | 哈啰一站式业产研协同平台的建设与实践

思码逸研发效能

让 K8s 更简单!8款你不得不知的 AI 工具-Part 2

SEAL安全

人工智能 开源 AI Kubernetes

查看 DB 和 RG 级别的监控指标--新特性 record-db-label

TiDB 社区干货传送门

实践案例 管理与运维 新版本/特性解读 7.x 实践

TiDB MVCC 版本堆积相关原理及排查手段

TiDB 社区干货传送门

性能调优 管理与运维 故障排查/诊断 性能测评

TiDB 组件 GC 原理及常见问题

TiDB 社区干货传送门

监控 性能调优 集群管理 故障排查/诊断 性能测评

掌握金融数据分析的基本方法和工具

悦数图数据库

数据库 数据分析

IPQ9574-IPQ9554-QCN9274-QCN6274-QCN9224-QCN6224- How to choose a WiFi7 motherboard and WiFi7 card CPU?

wifi6-yiyi

cpu router WiFi7

新零售SaaS架构:什么是订单履约系统?

EquatorCoco

大数据 架构 零售 SaaS

一文搞懂TiDB的闪回(FlashBack)能力

TiDB 社区干货传送门

实践案例 7.x 实践

数据抽取在tidb中的应用总结

TiDB 社区干货传送门

实践案例 大数据场景实践 OLTP 场景实践 OLAP 场景实践

TiDB 在企查查数据中台的应用及 v7.1 版本升级体验

TiDB 社区干货传送门

7.x 实践

西安有哪些值得去的互联网公司?最新版

王磊

敏捷开发最佳实践:价值维度实践案例——ABTest中台化

爱吃小舅的鱼

敏捷 敏捷开发

【Sora】活着已经够焦虑了,别再制造焦虑了

IPD产品研发管理

人工智能 AI sora

WiFi7, a new communication technology revolution?

wallysSK

一个好运维的自我修养:做好企业 IT 运维工作

伤感汤姆布利柏

国产数据库“同城两中心”容灾方案对比,TiDB表现优秀

TiDB 社区干货传送门

数据库架构选型 数据库架构设计

赛事 Q&A × 培训预告:2024 年(第 17 届)中国大学生计算机设计大赛大数据主题赛正式开赛!

ModelWhale

人工智能 大数据 编程 高等教育 中国大学生计算机设计大赛

NFTScan Labs,一个聚焦在 NFT 领域的开发者组织

NFT Research

NFT NFT\ NFTScan

【揭秘OAuth协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OAuth协议的奥秘,告别SSO的迷茫与困惑

洛神灬殇

oauth2.0 SSO 单点登录 分布式协议

Linux操作系统中软件安装:用RPM包管理器安装软件步骤

小魏写代码

探索旋转LED显示屏的设计与安装

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

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