写点什么

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

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

关注

评论

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

Redis 高可用方案

天翼云开发者社区

redis

YashanDB dump

YashanDB

数据库 yashandb

HarmonyOS NEXT 实现拖动卡片背景模糊效果

威哥爱编程

HarmonyOS HarmonyOS框架 HarmonyOS NEXT

类似智联招聘/前程无忧,BOSS直聘网站小程序项目源码定制开发搭建

网站,小程序,APP开发定制

【HarmonyOS NEXT】鸿蒙三方应用跳转到系统浏览器

GeorgeGcs

鸿蒙 三方应用 系统浏览器

【HarmonyOS NEXT】鸿蒙应用点9图的处理(draw9patch)

GeorgeGcs

鸿蒙 draw9patch 应用点9图

如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审

阿里巴巴云原生

阿里云 AI 云原生

YashanDB健康检查

YashanDB

数据库 yashandb

08.面向对象的特性

杨充

Rust 开发者必备:三分钟搞定视频缩略图生成

Yeauty

rust ffmpeg Video media audio

【HarmonyOS NEXT】systemDateTime 时间戳转换为时间格式 Date,DateTimeFormat

GeorgeGcs

Date systemDateTime DateTimeFormat

联合民生证券,探讨AI技术驱动下的财富管理新范式

非凸科技

YashanDB故障诊断概念

YashanDB

数据库 yashandb

AI之山,鸿蒙之水,画一幅未来之家

脑极体

AI

如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审

阿里云云效

阿里云 云原生 云效

【HarmonyOS Next】鸿蒙状态管理V2装饰器详解

GeorgeGcs

鸿蒙状态管理 V2装饰器

【HarmonyOS NEXT】设备显示白屏 syswarning happended in XXX

GeorgeGcs

设备显示白屏 syswarning happended in XXX

具身智能:人工智能的革命——从算法智能到物理智能的范式转移

测试人

人工智能

Netty源码—客户端接入流程

不在线第一只蜗牛

Java php 服务器

【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页

GeorgeGcs

鸿蒙 华为应用市场 目标APP下载页 跳转

【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务,解决屏幕录制音乐播放等操作不被挂起

GeorgeGcs

后台任务 长时任务 屏幕录制音乐播放

【HarmonyOS NEXT】鸿蒙应用实现屏幕录制详解和源码

GeorgeGcs

鸿蒙 源码 应用 屏幕录制 详解

YashanDB故障诊断架构

YashanDB

数据库 yashandb

HarmonyOS NEXT 基于原生能力获取视频缩略图

威哥爱编程

HarmonyOS ArkTS HarmonyOS框架 HarmonyOS NEXT

Spring Boot 与 MyBatis Plus 整合 KWDB 实现 JDBC 数据访问

KaiwuDB

数据库 KaiwuDB

SvelteKit 最新中文文档教程(9)—— 部署静态站点与单页应用

冴羽

vue.js 前端 React Svelte SvelteKit

【HarmonyOS NEXT】鸿蒙应用如何进行页面横竖屏切换以及注意事项,自动切换横竖屏,监听横竖屏

GeorgeGcs

鸿蒙应用 横竖屏切换 自动切换横竖屏 监听横竖屏

【HarmonyOS Next】鸿蒙应用进程和线程详解

GeorgeGcs

鸿蒙 线程 应用进程 详解

【HarmonyOS Next】鸿蒙监听手机按键

GeorgeGcs

鸿蒙 监听 手机按键

【HarmonyOS NEXT】解决自定义弹框遮挡气泡提示的问题

GeorgeGcs

自定义弹框 间隙

YashanDB巡检

YashanDB

数据库 yashandb

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