写点什么

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

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

关注

评论

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

idc服务器是什么意思?

Geek_f19a80

服务器

首届教师案例教学竞赛一等奖作品上线至和鲸社区,快来学习! Jing Nov 26, 2023 需 12 分钟阅读

ModelWhale

人才培养 数据科学 教学创新 中国商业统计学会 教学竞赛

Swish for Mac触控板增强工具: 重新定义触控板操作

Rose

swish激活函数 Swish mac Mac触控板增强工具 mac破解软件下载

Walrus 0.4发布:单一配置、多态运行,体验下一代应用交付模型

SEAL安全

应用交付 运维工具 Walrus 企业号11月PK榜

有没有类似HyperDock一样好用的窗口管理软件?

Rose

mac软件下载 苹果窗口管理软件 mac窗口增强工具 窗口整理工具合集

重写equals后为什么要重写hashcode方法

javaNice

Java

从错误中学习: 了解Go编程的6个坏习惯

俞凡

golang 最佳实践

和鲸ModelWhale平台与海光人工智能加速卡系列完成适配认证,夯实 AI 应用核心底座

ModelWhale

gpu 信创 算力 数据科学 海光

必读文章1-你尽力了吗

玄兴梦影

深度盘点!10款最实用的组织架构图制作软件,你用过几款?

职场工具箱

软件推荐 组织架构图

3DCAT为华东师大设计学院打造元宇宙数字虚拟学院

3DCAT实时渲染

元宇宙 实时云渲染 元宇宙解决方案

一种LED驱动专用控制电路

芯动大师

学习笔记:如何做成一件事

老张

个人成长 学习笔记 做事

Python笔记一之excel的读取

Hunter熊

Python Excel xlsxwriter Python xlrd

必读文章2-如何度过职场新兵期

玄兴梦影

代码审核员要被 ChatGPT 干掉了?

极狐GitLab

DevOps MR openai ChatGPT

Sensei for Mac 苹果电脑 系统性能优化及清理工具

Rose

mac系统清理优化软件 Sensei破解版 Sensei中文版 Sensei Mac下载 破解软件

Java项目启动时先加载某些方法可用于redis缓存预热

javaNice

Java

使用 Java 客户端通过 HTTPS 连接到 Easysearch

极限实验室

Java https easysearch

Tech Lead 要学会戴着镣铐跳舞

光毅

团队管理

IntelliJ IDEA 遇到 JavaLaunchHelper 多种实现的解决方法

Rose

IntelliJ IDEA 2023破解 IntelliJ IDEA 2023最新 IntelliJ IDEA报错

如何在langchain中对大模型的输出进行格式化

程序那些事

程序那些事 LLM 大语言模型

干货丨5G+智慧工厂解决方案(附PPT)

工赋开发者社区

Chat AI教你如何追求富婆

Geek_ccdd7f

ChatGPT ChatGPT4

CADintosh X v8.8.6 2D CAD 程序 兼容 M1/M2 安装 mac 计算机辅助设计软件

Rose

mac软件下载 cad CADintosh X 8 二维CAD

44页案例 | 数字化工厂解决方案助力中国制造2025

工赋开发者社区

文心一言 VS 讯飞星火 VS chatgpt (143)-- 算法导论12.1 3题

福大大架构师每日一题

福大大架构师每日一题

SQL JOIN 子句:合并多个表中相关行的完整指南

小万哥

MySQL 数据库 程序员 sql 后端开发

多种 React 组件通信方式实践

南城FE

JavaScript 前端 React

水彩画制作工具 Watercolor Studio Pro 最新激活版

胖墩儿不胖y

Mac软件 绘画工具

淘宝商品信息的API接口获取方式是什么?

技术冰糖葫芦

API 文档

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