使用Microsoft Fakes进行单元测试(2)

接上一篇使用Microsoft Fakes进行单元测试(1) 下面进行Shim的演示。

2.使用Shim替换静态方法

假设我们需要一个工具方法用来格式化当前时间为字符串,因为DateTime.Now一直在变的所以我们需要隔离它,且DateTime是.NET内置的类型,所以我们根本不可能去修改它,但是有了MS Fakes一样可以隔离起来。 工具类:

简单的格式化一下然后返回。 在Tests项目下为System引用添加Fakes程序集

使用Shim来完成测试:

运行测试: Ctrl+T+R

可以看到测试成功,说明MS Fakes成功的替换了DateTime.Now的值。这个真是屌炸天的! Shim还可以替换某个类的实例方法,请看下面。

3.使用Shim替换所有实例对象的方法

Students类:

测试方法:

4.使用Shim替换某个实例对象的方法

沿用上面的Student类

其中Stu.Instance的类型就是Student,这个Instance的GetName方法被替换成。

其实Shim还可以做很多很多事情,不再一一介绍了。

参考:https://msdn.microsoft.com/en-us/library/hh549176.aspx

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏高性能服务器开发

用Visual Studio调试linux程序

用Visual Studio调试linux程序?你真的没看错,这个是真的,不是标题党。当然如果你说VS2015及以上版本自带的linux调试插件,那就算了。这些...

4296
来自专栏一个会写诗的程序员的博客

RequireJS极简入门教程RequireJS核心功能:HOW TOmain.js使用 shim

随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作...

893
来自专栏别先生

Hadoop Shell命令(基于linux操作系统上传下载文件到hdfs文件系统基本命令学习)

Apache-->hadoop的官网文档命令学习:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html...

1987
来自专栏NodeJs C++ Addon

NodeJs —— 在Visual Studio中开发C++插件之环境配置

     最新版地址:  https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/

1356
来自专栏mySoul

ejs koa

npm https://www.npmjs.com/package/koa-static

1014
来自专栏牛客网

Linux入门学习笔记

1. 指令、选项或参数之间不论空几个格, shell 都视为一个空格。 2. 指令太长时,可以使用“ \ ”(反斜杠)符号使指令连续到下一行。 3. Linux...

31310
来自专栏cnblogs

requirejs、vue、vuex、vue-route的结合使用,您认为可行吗?

     在五一节之前和一网友讨论前端技术时,对方提到vue、vue-route如果配合requirejs应用。当时的我没有想得很明白,也没能这位网友一个准确的...

24110
来自专栏coding

django2实战4.创建文章列表页和详情页url适配自定义模型管理器在view中写业务逻辑新建模板文件添加分页功能

我们已经知道如何操作文章表的数据,接下来要将这些数据用界面显示出来。这就需要用到django的view层负责处理http请求,并将数据传给template模板进...

1263
来自专栏Linux驱动

QT-第一个程序 Hello QT , 以及QT creator介绍

第一个程序 - Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #in...

3147
来自专栏水击三千

SpringMvc学习-环境搭建

最近在学习SpringMVC,首先来说说SpringMVC项目的搭建。 1.SpringMVC简介 spring Web MVC是一种基于Java的实现了Web...

2487

扫码关注云+社区