Microsoft Fakes】的更多相关文章

如题,本文主要作为在VS2012使用Fakes的入门示例,开发工具必须是VS2012或更高版本. 关于Fakes的MSDN地址:http://msdn.microsoft.com/en-us/library/hh549175.aspx 关于VS2012单元测试的前期文章: 1.<在Visual Studio 2012使用单元测试>. 2.<VS2012 单元测试之泛型类(Generics Unit Test)>. 3.<VS2012 Unit Test —— 我对接口进行单元…
在单元测试(Unit Test)中我们遇到的问题之一是:假如被测试组件(类或项目)为A,组件A依赖于组件B,那么在组件A的单元测试ATest中测试A时,也需要依赖于B,在B发生改动后,就可能影响到A的测试结果.为了在测试A时隔离B对A的影响,这就是Microsoft Fakes要解决的问题. 解决上面的问题,Microsoft Fakes采用的方法是用将组件B用stubs或shims替换. 参看:http://msdn.microsoft.com/library/vstudio/hh549175…
接上一篇使用Microsoft Fakes进行单元测试(1) 下面进行Shim的演示. 2.使用Shim替换静态方法 假设我们需要一个工具方法用来格式化当前时间为字符串,因为DateTime.Now一直在变的所以我们需要隔离它,且DateTime是.NET内置的类型,所以我们根本不可能去修改它,但是有了MS Fakes一样可以隔离起来. 工具类: 简单的格式化一下然后返回. 在Tests项目下为System引用添加Fakes程序集 使用Shim来完成测试: 运行测试: Ctrl+T+R 可以看到…
一:什么是单元测试 单元测试是对软件进行准确性验证的步骤.单元测试并不进行整个软件功能的测试,仅仅是对于最小工作单元的测试.一般最小工作单元就是指方法/函数等. 这里并不打算对单元测试的概念及基础进行更多的介绍,需要了解更多的自行google. 二:UnitTestFramework UnitTestFramework是微软开发的一套单元测试框架.类似的三方框架有NUnit等.UnitTestFramework为单元测试提供断言,自动化测试,管理界面等功能.与VisualStudio无缝集成.…
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 在编写单元测试时,我们会遇到不同的外部依赖项,大体上可以分为两类: 依赖于接口或抽象类 依赖于具体类 我们将使用 Microsoft Fakes 分别对两种条件下的依赖项进行隔离. 依赖于接口或抽象类 首先,我们来定义被测试代码. public interface IEmailSender { bool SendEmail(string content); } public class Custo…
http://baike.baidu.com/view/9602275.htm?fr=aladdin http://technet.microsoft.com/zh-cn/magazine/hh549175.aspx Microsoft Fakes 提供了两种模拟类型成员的方式.以下两种方式的替代实现,都可以由委托来重新实现. 1.Stub Type,存根类型,可以动态地为接口及非密封的virtual或属性附加委托,以重新定义其实现,生成的类为强类型. 2.Shim Types,填充类型,解决了…
使用Microsoft Fakes进行单元测试(1)   一:什么是单元测试 单元测试是对软件进行准确性验证的步骤.单元测试并不进行整个软件功能的测试,仅仅是对于最小工作单元的测试.一般最小工作单元就是指方法/函数等. 这里并不打算对单元测试的概念及基础进行更多的介绍,需要了解更多的自行google. 二:UnitTestFramework UnitTestFramework是微软开发的一套单元测试框架.类似的三方框架有NUnit等.UnitTestFramework为单元测试提供断言,自动化测…
为了在单元测试中指定DateTime.Now的值,我采用Microsoft Fakes技术的Shim. 主要参考了园里的http://www.cnblogs.com/FreeDong/p/3353111.html,编译时出了几千个警告,最终在“引用”中没有出现System.4.0.0.0.Fakes,当然了,这种情况下写using System.Fakes也编译出错.我的环境是VS2013 update4.中间经历了各种折腾,直到用VS2012 update2试了,奇迹地成功了. 最后打了VS2…
 Moles与Moq(Rhino.Mocks)比较 作用范围 Moq与Rhino.Mocks这类的Mock是对Interface或AbstractClass做Mock, 而Moles是Mock整个CLR(Common Language Runtime),破除Moq等Mock套件的限制,不仅可以对Interface或AbstractClass做Mock,还可以对Static Method来Mock,如DateTime.Now或File.Open等Static Method,使原本在开发时不用为…
一.前言 最近团队要尝试TDD(测试驱动开发)的实践,很多人习惯了先代码后测试的流程,对于TDD总心存恐惧,认为没有代码的情况下写测试代码时被架空了,没法写下来,其实,根据个人实践经验,TDD并不可怕,还很可爱,只要你真正去实践了几十个测试用例之后,你会爱上这种形式方式的.微软对于TDD的开发方式是大力支持和推荐的,新发布的VS2012的团队模板就是根据.新的Visual Studio 2012给我们带来了Fakes框架,这是一个针对代码测试时对测试的外界依赖(如数据库,文件等)进行模拟的Moc…