HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

rabbitmq原理和应用

六月的

Go RabbitMQ

vue为什么v-for的优先级比v-if的高?

bb_xiaxia1998

Vue

深入浅出redis缓存应用

六月的

redis

进阶vue面试题总结

bb_xiaxia1998

Vue

golang垃圾回收

六月的

golang 垃圾回收

CORS跨域

六月的

CORS

grpc中的拦截器

六月的

gRPC 拦截器

Git的branch操作详解

timerring

git 10月月更 branch

go-zero docker-compose 搭建课件服务(九):http统一返回和集成日志服务

六月的

Docker-compose go-zero

golang单元测试一(简单函数测试)

六月的

golang 单元测试

golang中的一些实用功能

六月的

golang

golang中的socket编程

六月的

golang socket

揭秘百度智能测试在测试评估领域实践

百度Geek说

测试 数据 企业号十月 PK 榜

etcd实现分布式锁

六月的

分布式锁 etcd

PaddleNLP基于ERNIR3.0文本分类:WOS数据集为例(层次分类)

汀丶人工智能

nlp 文本分类

golang中经常会犯的一些错误

六月的

golang

租房小程序使用uniapp展示地图map

源字节1号

小程序开发

一键上手时下最火AI作画工具

华为云开发者联盟

人工智能 华为云

vue组件通信6种方式总结(常问知识点)

bb_xiaxia1998

Vue

固定QPS异步任务功能初探

FunTester

golang开发一个简单的grpc

六月的

golang gRPC

golang中的变量阴影

六月的

golang

如何修改已提交commit信息

Appleex

git

go-zero docker-compose 搭建课件服务(八):集成jaeger链路追踪

六月的

Docker-compose go-zero

goroutine&waitgroup下载文件

六月的

goroutine waitgroup

golang的内存管理

六月的

golang 内存管理

golang中的errgroup

六月的

golang errgroup

golang中的几种并发模式

六月的

golang 并发模式

golang中的选项模式

六月的

golang 选项模式

100+款AI产品薅羊毛攻略(上)——轻轻松松节省几十万

夏夜许游

人工智能 阿里云 AI 视觉

grpc错误处理

六月的

gRPC 错误处理

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