随笔分类 -  测试

摘要:实际上“单元测试不可测试那些类(无抽象、静态类、静态方法)”是个伪命题,因为事实是:无抽象、静态类、静态方法都是不可单元测试的。那么,如果我们要写出可测试的代码,又要用到这些静态类等,该怎么办,实际上我们需要两个步骤:1:为它们写一个包装类,让这个包装类是抽象的(继承自接口,或者抽象类,或者方法本身是Virtual的);2:通知客户端程序员,使用包装类来代替原先的静态类来写业务逻辑;实际上,微软也是这么干的,我在上一篇博文《单元测试WebForm的UI逻辑及文件上传》写到,最典型的不可测试类,那就是WebForm架构的网站中,对Response等的模拟。查看Response这个类:namesp 阅读全文
posted @ 2012-12-31 12:16 陆敏技 阅读(5512) 评论(3) 推荐(3) 编辑
摘要:BS系统中的UI部分的逻辑测试,最首要的就是要模拟请求(Request)和输出(Response),而WebForm又跟MVC不一样,后者的Response,Request等HTTP上下文对象均有接口支持,很容易模拟,而查看WebForm的对应对象,如Response,我们首先看到的声明就是:public sealed class HttpResponse无接口,并且是sealed,换句话说,我们要测试一个如下的的Code-Behind函数的逻辑正确性,该怎么测试:protected void Page_Load(object sender, EvengArgs e){ this.Respo. 阅读全文
posted @ 2012-11-30 12:43 陆敏技 阅读(3694) 评论(2) 推荐(5) 编辑
摘要:因为某项目的白盒单元测试做的不是很好,而QA又提出了非常高的代码覆盖率移行标准,不得以开始调研能覆盖手工测试(Mannual Test)的覆盖率工具,加上一些最基础的条件,该工具必须满足如下三点:1:能计算白盒单元测试覆盖率;2:能计算黑盒手工测试覆盖率;3:支持MSTest框架;第一个自然想到的就是NCover,没错,它肯定满足这三个条件,它有一个满足21天使用的Trial版本可以用,但是,商业版本的价格也是惊人的:NCover Code Central$ 2,298NCover Desktop$ 658NCover Collector$ 448很多刀刀。相比而言,生产Resharper的J 阅读全文
posted @ 2012-11-15 21:48 陆敏技 阅读(5060) 评论(5) 推荐(3) 编辑
摘要:在MOQ中,It用于添加参数约定,它有以下几个方法:Is<T>:匹配确定的给定类型IsAny<T>:匹配给定的任何值IsInRange<T>:匹配给定类型的范围IsRegex<T>:正则匹配还是以上文中的例子: public abstract class CounterBase { public abstract int CountArgs(int a, int b); }测试代码: Mock<CounterBase> mock = new Mock<CounterBase>(); mock.Setup(arg => 阅读全文
posted @ 2011-08-16 16:55 陆敏技 阅读(673) 评论(0) 推荐(0) 编辑
摘要:MOQ来自于http://code.google.com/p/moq/。下载后其实是直接作为DLL被引用的。Mock是模拟对象的一种技术。它可以用于以下情况:----- 真实对象具有不可确定的行为(产生不可预测的结果,如股票的行情)----- 真实对象很难被创建(比如具体的web容器)----- 真实对象的某些行为很难触发(比如网络错误)----- 真实情况令程序的运行速度很慢----- 真实对象有用户界面----- 测试需要询问真实对象它是如何被调用的(比如测试可能需要验证某个回调函数是否被调用了)----- 真实对象实际上并不存在(当需要和其他开发小组,或者新的硬件系统打交道的时候,这是一 阅读全文
posted @ 2011-08-15 09:33 陆敏技 阅读(1752) 评论(0) 推荐(0) 编辑
摘要:1:选择测试框架几乎所有的SL开发人员,都会安装Silverlight Toolkit,如果安装了这个框架,那么自然就会带上一个Silverlight Unit Test Framework。如果安装顺利,我们会在新建项目的时候,我们会在项目模版中发现多了如下一个项目:同时,如果我们在项目中新建项,会发现多了如下的文件模版:值得注意的是,安装该模版有一个BUG。那就是如果我们的VISUAL STUDIO没有安装在默认的路径下(如安装在D盘),就会发现我们找不到Silverlight Unit test Template。要让VS找到模版,我们需要:把C:\Program Files\Micro 阅读全文
posted @ 2011-06-19 12:03 陆敏技 阅读(2115) 评论(0) 推荐(2) 编辑
摘要:基于如下的几个理由,需要为应用程序提供多个版本: 1:应用程序有体验版和完整功能版; 2:应用程序测试过程中需要完成一些自动化的操作; 1:提供体验版 关于第一点,所谓体验版也就是完整版的一个缩小版。即出于某种理由,不对用户开放应用程序的全部功能。 假设我的应用程序共有两类功能。第一类功能属于单机版,而完整版还提供在线功能。那么,在功能上,我需要定制两个属性"ONLINE"和"OFFLINE"。在体验版中,我只开放"OFFLINE"功能。 要实现此目的,我不想提供两套应用程序,而是想通过最小设置,就能为一个应用程序输出两个发布版本。这 阅读全文
posted @ 2010-11-30 09:24 陆敏技 阅读(4178) 评论(12) 推荐(2) 编辑
摘要:本文摘要: 1:测试要求 2:在VS中运行自动化测试 3:脱离VS进行自动化测试 在上一文中《C#借助API实现黑盒自动化测试工具的编写》(http://www.cnblogs.com/luminji/archive/2010/11/03/1867730.html),我们使用WINDOWS API来实现自动化测试工具的编写。但是,这种办法在大型软件测试的时候,需要很细致和繁杂的工作。在VS2010出来以后,我们不妨看看Code UI Automation这个好东西。关于Code UI Automation已经有人介绍过很多,本文要说明的重点如下: 1:使用Code UI Automation来 阅读全文
posted @ 2010-11-18 09:30 陆敏技 阅读(11211) 评论(14) 推荐(4) 编辑
摘要:C#借助API实现黑盒自动化测试工具的编写本文代码下载(VS2010开发):http://download.csdn.net/source/2796362本文摘要:1:一个简单的例子 1.1:EnumChildWindows介绍 1.2:主要源码2:难点:如何获取指定的控件句柄 2.1:使用SPY+... 阅读全文
posted @ 2010-11-03 09:17 陆敏技 阅读(16140) 评论(17) 推荐(9) 编辑

Web Counter
Coupon for Contacts