05 2011 档案

摘要:Sometimes you have a method on your mocked object for which you don't care how or if it was called, but you may want to set a return value (or an exception to be thrown) in case it is called. For example, you may have some interaction that you've already verified, or you are testing some oth 阅读全文
posted @ 2011-05-30 16:44 ido 阅读(416) 评论(0) 推荐(0) 编辑
摘要:(一)Do(delegate)有时候在测试过程中只返回一个静态的值是不够的,在这种情况下,Do()方法可以用来在方法调用时添加自定义的行为。一般来说,Do()方法会替换方法调用。它的返回值会从模拟的调用中返回(即使是有异常发生也是这样)。Do()的参数委托委托的方法的签名须和方法的签名匹配。只有当签名匹配时才能生效,且一个匹配生效一次。看官方给出的例子:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicclassSpeaker{pr 阅读全文
posted @ 2011-05-30 15:44 ido 阅读(526) 评论(1) 推荐(0) 编辑
摘要:(一)安装结果(SetupResult)有时候在模拟对象中需要一个方法的返回值,而不在意这个方法是否被调用。就可以通过安装结果(SetupRestult)来设置返回值,而绕开期望安装,且可以使用多次。从依赖的角度来说是这样的:方法a(或属性)被方法b使用,而在其它的位置c处方法a又会被使用,而在c处使用之前,不保证是否在b处使用且修改了方法a的返回值。意思就是保证方法a的返回结果是固定的,是忽略它的依赖,而在它该用的位置使用它恒定的值。安装结果可以达到这种效果。Code highlighting produced by Actipro CodeHighlighter (freeware)htt 阅读全文
posted @ 2011-05-30 15:41 ido 阅读(549) 评论(0) 推荐(0) 编辑
摘要:(一)属性Property属性也是一种方法。所以对于属性的期望,和方法是一样的。方法和属性的期望在前几篇随笔中已经大量使用。通常的读或写属性器的期望Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->[Test]publicvoidTestEvent(){MockRepositorymocks=newMockRepository();IList<int>_list=mocks.DynamicMock<IList<int&g 阅读全文
posted @ 2011-05-30 15:37 ido 阅读(1834) 评论(0) 推荐(0) 编辑
摘要:(一)次序(Ordered)在rhinomock中,可以按次序调用方法。默认条件下,方法调用没有顺序。如果按次序录制,那么在调用方法时必须按录制时相同的次序进行。请看:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicinterfaceICustomer{ stringShowTitle(stringstr); intUnid{get;set;} stringCustomerName{get;set;} stringAddress{ 阅读全文
posted @ 2011-05-30 15:33 ido 阅读(426) 评论(0) 推荐(0) 编辑
摘要:MockRespository有四种泛型方法:·CreateMock<T>·CreateDynamicMock<T>·PartialMock·Stub在3.5中,三种已经过时的方法分别由以下方法替代:·StrictMock<T>·DynamicMock<T>·PartialMock<T>·Stub<T>它们各自对应静态工厂方法:·MockRepository.GenerateStrictMock<T>·MockR 阅读全文
posted @ 2011-05-30 15:25 ido 阅读(733) 评论(0) 推荐(0) 编辑
摘要:(一)MockRepositoryRhinoMock的主要的类,是Mock仓库,用于创建mock对象,录制,重放,验证等。(1)创建MockCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->MockRepositorymock=newMockRepository();(2)创建mock对象Mock的目的就是创建mock对象,然后期望,录制重放等。创建mock对象有很多方法,以前的版本中通过:Code highlighting produced 阅读全文
posted @ 2011-05-30 15:21 ido 阅读(445) 评论(0) 推荐(1) 编辑
摘要:场景:最近在测试一个.NET的Http Module,这个Module是用来做URL重写的。刚开始进展的比较顺利,因为该Module里面的方法参数基本上都是String,后来这个Module进行了一下重构,所有参数都变成了HttpContext了,这就直接导致原来的单元测试都跑不起来了,接着就开始了弄HttpContext了。1. 采用Visual Studio自带的ASP.NET单元测试刚开始我看了一下被测试的代码,虽然说用到了HttpContext,但是有很多地方我都可以绕过去的,意思就是这个HttpContext只是名以上需要的一个参数,只要它不是NULL就可以了,并不影响我的测试,所以 阅读全文
posted @ 2011-05-30 14:34 ido 阅读(3469) 评论(1) 推荐(0) 编辑
摘要:Mock: 记录了接口被调用的顺序, 次数, 参数和返回值. 这些都必须在随后的测试上得到验证. 如果在Record时记录了一次接口的方法调用, 而测试对象实际上并没调用该接口的方法的话, 验证会失败.Stub: 记录了接口被调用的信息, 但不验证. 测试对象可能调用了这个接口, 也可能没有调用. 阅读全文
posted @ 2011-05-30 10:39 ido 阅读(435) 评论(0) 推荐(0) 编辑
摘要:mock与stub代表的是不同的unit testing方法(分别是 interaction-based 和state-based)。State-Based Testing一个例子:publicclassOrderStateTesterextendsTestCase{privatestaticStringTALISKER="talisker";privatestaticStringHIGHLAND_PARK="HighlandPark";privateWarehousewarehouse=newWarehouseImpl();protectedvoids 阅读全文
posted @ 2011-05-30 10:25 ido 阅读(2803) 评论(0) 推荐(0) 编辑
摘要:写的一个类帮助器,思路是,可以使用这个帮助器对类动态地控制(在运行时),如添加,删除其成员。最近要用到这个,在网上找了点资料,也不全面,就自己查msdn帮助文件。自己写了一个,功能还不是很完善,如果大家有兴趣扩展下功能的话,就再好不过了。现在只能控制属性,还不能控制其它成员,如事件,方法等等。演示一:动态生成类。演示二:动态添加属性到类。演示三:动态从类里删除属性。演示四:动态获取和设置属性值。类帮助器代码:// --------------------------------------------------------// 作者:李剑 msn:newshadowk@hotmail.com 阅读全文
posted @ 2011-05-26 15:20 ido 阅读(807) 评论(1) 推荐(0) 编辑
摘要:IIRF重写在asp.net4.0+IIS6中部分失败的解决方案 阅读全文
posted @ 2011-05-26 11:58 ido 阅读(1898) 评论(0) 推荐(0) 编辑
摘要:看到haack的这篇文章《ASP.NET MVC 3 Extensionless URLs on IIS 6》,我才知道在IIS6的环境下运行ASP.NET4.0程序,我们已经可以原生的支持没有后续名(扩展名)的URL请求,而不需要再做通配符映射,这对我们在IIS6部署ASP.NET MVC站点来说,相当的重要。在以前,我们要让ASP.NET MVC程序可以正常工作在IIS6上面,要么在我们的程序路由中添加*.mvc(或其它任意后缀),并且在部署时添加isapi映射规则,把*.mvc映射到aspnet_isapi.dll,让他交由ASP.NET处理程序进行处理,但一般情况下,这种做法我们都不会 阅读全文
posted @ 2011-05-26 11:25 ido 阅读(1844) 评论(1) 推荐(0) 编辑
摘要:服务器安装Microsoft .NET Framework 4.0后,在IIS站点属性中将ASP.NET版本都设置为4.0,再访问页面发现所有ASPX页面都是404,而访问htm页面却是正常的,后来知道是"Web 服务扩展"中未启用ASP.NET v4.0导致的. 阅读全文
posted @ 2011-05-25 10:29 ido 阅读(2191) 评论(0) 推荐(0) 编辑
摘要:Asp.net Mvc 中未能加载MvcApplication的原因 阅读全文
posted @ 2011-05-25 09:12 ido 阅读(5965) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示