使用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 条评论
登录 后参与评论

相关文章

来自专栏c#开发者

Silverlight RIA Service开发实战总结(一)

Silverlight RIA Service开发实战总结(一) 如何更新(新增实体)domainService和metadata class 第一次使用向...

3095
来自专栏大大的微笑

java如何根据二进制流确定图片的类型

 为什么需要这样做? 因为仅仅通过后缀名我们并不能得知用户是否把图片的类型更改为其他类型. public enum ImageType { PNG('P','...

2576
来自专栏博岩Java大讲堂

Java日志体系(slf4j)

4126
来自专栏IT开发技术与工作效率

VBA非登陆下载Excel文件并处理例子

1084
来自专栏林德熙的博客

.net remoting 使用事件

在RPC如果需要使用事件,相对是比较难的。本文告诉大家如何在 .net remoting 使用事件。

651
来自专栏.NET后端开发

ADO.NET入门教程(六) 谈谈Command对象与数据检索

摘要 到目前为止,我相信大家对于ADO.NET如何与外部数据源建立连接以及如何提高连接性能等相关知识已经牢固于心了。连接对象作为ADO.NET的主力先锋,为用户...

3397
来自专栏JavaQ

Dozer数据对象转换神器

首先,为什么要进行数据转换? 在一个分层的体系结构中,经常会使用DTO、PO、VO等封装数据,封装数据到特定的数据对象中,然而在很多情况下,某层内部的数据是不允...

2564
来自专栏NetCore

一个让人遗忘的角落—Exception(二)

在上一篇中"一个被人遗忘的角落--Exception(一)"中,跟大家简单介绍了一下Exception,也使大家充分的了解了Exception管理在一个项目中的...

1759
来自专栏NetCore

对List.Sort的简单研究

最近一直忙着修改项目中的bug,特别是一些绑定的列表排序,因为是中途加入的,所以我一般不改变别人的存储过程或者类方法,只在需要的时候帮其排序一下,不过非常郁闷。...

18610
来自专栏hbbliyong

Spring Boot搭建Web项目常用功能

     首先要弄清楚为什么要包装统一结构结果数据,这是因为当任意的ajax请求超时或者越权操作时,系统能返回统一的错误信息给到前端,前端通过封装统一的ajax...

1192

扫码关注云+社区