如题,本文主要作为在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 —— 我对接口进行单元…
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 在编写单元测试时,我们会遇到不同的外部依赖项,大体上可以分为两类: 依赖于接口或抽象类 依赖于具体类 我们将使用 Microsoft Fakes 分别对两种条件下的依赖项进行隔离. 依赖于接口或抽象类 首先,我们来定义被测试代码. public interface IEmailSender { bool SendEmail(string content); } public class Custo…
一.前言 最近团队要尝试TDD(测试驱动开发)的实践,很多人习惯了先代码后测试的流程,对于TDD总心存恐惧,认为没有代码的情况下写测试代码时被架空了,没法写下来,其实,根据个人实践经验,TDD并不可怕,还很可爱,只要你真正去实践了几十个测试用例之后,你会爱上这种形式方式的.微软对于TDD的开发方式是大力支持和推荐的,新发布的VS2012的团队模板就是根据.新的Visual Studio 2012给我们带来了Fakes框架,这是一个针对代码测试时对测试的外界依赖(如数据库,文件等)进行模拟的Moc…
https://dev.to/milipski/test-doubles---fakes-mocks-and-stubs This text was originally posted at Pragmatists blog In automated testing it is common to use objects that look and behave like their production equivalents, but are actually simplified. Thi…
Moq是无法直接模拟静态方法的,解决方式有两种: 1.需要修改正式代码,在源代码中建一个新的方法把静态方法包起来,调用的时候源代码调用时调用新方法而不是原来的静态方法. 在测试的时候,Mock掉这个新的方法,以达到模拟的目的 原来: public class FormatClass { public static string FormatDate(DateTime date) { return date.ToString("yyyyMMdd"); } } public class D…
stub常用于虚拟接口.类.方法,无法重写静态方法(stub需要传递到具体调用代码中) shim常用于重写静态方法(在ShimsContext.Create()作用域内,拦截Runtime动态修改方法的实现,静态方法无需传递) shim如果用于重写非静态方法,依然需要传递 以下两种的目的都是虚拟TokenHandler.GetToken这个方法 stub: var stubTokenHandler = new StubTokenHandler<Token>("user")…
首先,给出MSDN相关地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.aspx (类库) Verifying Code by Using Unit Tests (介绍) 我的IdleTest源码地址:http://idletest.codeplex.com/ VS2012单元测试的主要类:Assert.StringAssert.CollectionAssert,具体可参…
These are the contents of my training session about unit testing, and also have some introductions about how could we write better unit tests with NSubstitute framework. The related sessions: Unit Testing with NSubstitute Building the Testing Pipelin…
Reading data from a generator using yield from def reader(): """A generator that fakes a read from a file, socket, etc.""" for i in range(4): yield '<< %s' % i def reader_wrapper(g): # Manually iterate over data produce…
Prevent and troubleshoot runtime issues Troubleshooting performance, security and errors using performance wizard (Vs2012) Using VS profiler (Analyzer | Profiler) Using Performance Monitor NLog/log4net for logging Tracing, Trace.WriteLine("Message&qu…