![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
[发布至博客园首页]
iteye_617
这个作者很懒,什么都没留下…
展开
-
TDD Tip:方法内部New出来的对象如何Mock
解决的问题:方法内部new的对象在测试时希望能够用mock对象去代替。问题:以下方法可以解决,但是很是丑陋,各位大侠是否有更好的方法?描述:如果说把内部的方法放到类的一个公开成员变量,或者放到方法的参数里,我的意见是公开了不应该公开的东西。使用第三方的类库: Mock工具 Rhino.Mocks, IOC: Castle.Windsor1. 现在我又这么一段代码,我想测试Math内部这两个...2008-12-16 00:27:00 · 1687 阅读 · 0 评论 -
一步一步学Ruby(四):Ruby标准类型
Ruby 的标准类型包括数字(Numeric)、字符串(String)、区间(Range)以及正则表达式(Regexp)。 数字 字符串 区间 正则表达式 数字Ruby 的数字包括整数(Integer)和浮点数(Float),这些类型都直接或间接继承自 Numeric。Ruby 的整...2009-01-24 23:33:00 · 164 阅读 · 0 评论 -
一步一步学Ruby(五): Class, Module, Object,Kernel的关系
1. Class, Module, Object,Kernel的关系我们看到Ruby里,可以直接写puts, print等,感觉像是命令动词一样,这和我们说的Ruby里一切都是对象有点冲突,其实我们理解了Ruby中Class, Module,Object,Kernel的关系,就明白了,通过下面的代码,我们知道Module是Class的父类. 通过上图可以看出Class, Module,...2009-01-27 21:36:00 · 142 阅读 · 0 评论 -
一步一步学Ruby(六):方法定义及调用
一、方法定义过程式方法 Ruby虽然是一个纯面向对象的语言,但是却允许我们面向过程的方法来使用,我们定义了一个方法后,我们可以直接使用,看下图 Kernel的方法 对象方法 类方法 "Jack Wang"是一个字符串对象 二、方法调用方法调用可以带括号,也可以不带 类方法的调用,像C#里的扩展方法 方法可以连续调...2009-01-28 22:03:00 · 129 阅读 · 0 评论 -
一步一步学Ruby(七):数学表达式
我们知道,在计算机的最底层,是完全基于数据的,我们编写程序,就是操作数据。 表达式就是能被计算机理解的数字,操作符,变量的联合。比如加、减、乘、除等,这和其他语言一样,下面都是表达式 这里我们注意与其它语言区别的是10/2,10/2.0的区别,Ruby只有在表达式里有一个是浮点数时,结果才是浮点数 0/0会报一个异常,但0.0/0.0结果将是NaN 负数操作 ** 操作符,可计算次...2009-01-30 20:45:00 · 116 阅读 · 0 评论 -
一步一步学Ruby(八):字符串表达式
Ruby中,内置很多对字符串操作的方法,下面我们看看最主要的一些方法连接字符串 可以对字符串做乘法 字符串比较 我们知道字符串其实存储的是数字,对字符串进行比较其实就是比较ASCII值用?求字符的ASCII值 数字代表的字符 将需要替换的表达式的放入#{..} 字符串也可以插入字符串变量 字符串常用方法 替换字符串的某一范围内的值 删除字符判断空 ...2009-02-01 19:26:00 · 109 阅读 · 0 评论 -
一步一步学Ruby(九):Ruby正则表达式(上)
先推荐一个在线的Ruby正则表达式编辑器http://www.rubular.com/ Ruby的正则表达式以"//"作为构造方法。表达式返回一个RegExp的对象。 一般规则: /a/匹配字符a。 /\?/匹配特殊字符?。特殊字符包括^, $, ? , ., /, \, [, ], {, }, (, ), +, *. .匹配任意字符,例如/a./匹配ab...2009-02-02 22:53:00 · 204 阅读 · 0 评论 -
一步一步学Ruby(十):Ruby正则表达式(下)
本文内容:贪婪量词和不贪婪量词 锚 前视断言 修饰语 正则与字符串的转换 正则表达式常用的地方一、贪婪量词和不贪婪量词量词*(零个或多个)和+(一个或多个)是贪婪的,它们会匹配尽可能多的字符,我们可以在*和+后面加一个?,使它成为非贪婪量词下面代码是: 1个或多个字符后接一个感叹号。 二、锚锚是指必须满座一定的条件,才能继续匹配^ ...2009-02-03 23:46:00 · 129 阅读 · 0 评论 -
一步一步学Ruby(十一):控制语句
一、比较语句 大部分和其他的语言一样,这里注意<=> 比较运算符主要用来判断,返回真假, && 与,||或 二、条件修饰语句 这里注意unless, unless就是if not 三、条件语句 如下几种形式 if if ..else.. end if..elseif..else..end unless(if not) case..wh...2009-02-05 23:05:00 · 105 阅读 · 0 评论 -
一步一步学Ruby(十二):Ruby类
一、类的定义、类的实例方法 二、特定对象的方法在Ruby里,我们可以为一个对象单独定义方法 三、重定义方法从下面代码可以看出,后面的定义会覆盖前面的定义 四、重新打开类Ruby里我们可以再打开一个类,向这类添加方法,有点像C#里的分部类,但不用加特别标记.我们一般不要拆开类的定义,因为那样不好理解,拆开类的一个原因是将它们分散到多个文件里。 五、实例变量这个前面有说过,这...2009-02-09 23:09:00 · 140 阅读 · 0 评论 -
一步一步学Ruby(十三):Ruby模块
Class类是Module的子类,类是一种特殊形式的模块,这个可看我的这篇文章 一步一步学Ruby(五): Class, Module, Object,Kernel的关系。我们知道最顶级的类是Object,那么最顶级的模块就是Kernel我们使用模块的的主要目的是用来组织代码,模块化代码,有点类似命名空间,但却有很大的不同一、创建和使用模块用module关键字来定义模块 module没...2009-02-10 23:15:00 · 179 阅读 · 0 评论 -
项目经理虚拟管理客户
项目经理做项目时经常会认为是客户的“问题”导致项目延期,比如说完成的部分需要客户确认,需求分析时要客户确认,一旦客户没有确认,项目没法继续了或延期了。这里要说的就是“客户的问题”,如果客户认为确实是自己的问题,那就不是个问题了,客户自然会同意延期或付费, 但大部分是客户不认为是自己的问题,这就真的成为问题了。比如需要客户确认而客户没有确认导致无法继续,而客户又不认同,原因就是客户没要把确认这件...2008-05-28 11:26:00 · 73 阅读 · 0 评论 -
Web测试工具Selenium:如何选取元素
selenium是一个非常棒的Web测试工具,他对Ajax支持非常好,本人强烈推荐.测试里很重要的一部,就是定位页面的元素,selenium提供如下强大的定位元素的方法。id=id name=name dom=javascriptExpression xpath=xpathExpression link=textPattern c...2009-02-17 23:23:00 · 139 阅读 · 0 评论 -
从中国男足看项目管理
国足1:2 不敌伊拉克后,彻底无缘本届世界杯,我想比赛时和赛后肯定有很多人痛骂国足,痛骂国家队员,我在这里想对国家队员真诚的说一声,你们受委屈了.我为什么这么说呢?试想一下,假如我们项目失败了,所在的公司倒闭了,我们能骂员工不行吗?我想有常识的人都知道不能,至少不全是,推理一下到男足,为何就不行呢?国足对伊拉克这场,我确实看到了队员真的拼了。有一个队员是叫韩鹏,头上都缠着绷带一直在踢。好了,不...2008-06-16 11:39:00 · 114 阅读 · 0 评论 -
敏捷的 "道"
本文摘要敏捷的路上 敏捷的诞生 敏捷宣言 敏捷宣言12条原则敏捷的路上敏捷最近几年风生水起,大行其道,愈演愈烈,越来越多的公司加入敏捷的队列。到底敏捷怎么样呢?我想实践是学习一样东西最好的方式。我从最初的ERP瀑布式开发,到后来使用一些过程,大部分都是半途而废,,如CMMI, RUP等,每一种都是很好的过程,但原来我并不这么认为,我认为这些不适合项目,尤其是小型...2008-11-19 14:10:00 · 49 阅读 · 0 评论 -
在服务器端保存ViewState
1.比较Asp.net 的一个强大的功能就是ViewState, 但是这也成为很多人诟病的地方,我们先来看一个实例ViewState其中一个特性就是保存页面的状态,下面我们看一个很简单的登录页面。(1) 默认的页面存储下面两幅图是使用默认的ViewState, Asp.net把状态保存在页面的一个Hidden控件里。每次请求时往返于客户端与服务器之间,我们可以看到储存了很多的值,页面大小...2008-11-20 16:51:00 · 108 阅读 · 0 评论 -
一步一步学Ruby(三): Ruby代码注释
本文内容单行注释 多行注释 特殊处理 文档注释一、单行注释#开头,以# 开头直到本行末尾的内容都被当作注释二、多行注释=begin 注释文字 =end, 注释关键字和注释的文本至少要一个空格的距离 三、特殊处理a. 字符串类的#不会当作注释 b. 正则表达式内的#不会被当作注释/#This is regular e...2009-01-23 19:42:00 · 148 阅读 · 0 评论 -
一步一步学Ruby(二):变量,常量
本文内容变量 变量范围 伪变量 常量一、变量1. 变量定义无需指定类型 2.只能包含字母、数字、下划线,但只能以字母或下划线开头 x, y2,_mCount 二、变量范围1.局部变量 以小写字母或下划线开头的标识符在 Ruby 中即为局部变量(如果引用未被声明的标识符则会被解释成无参数的方法调用) 局部变量只在代码...2009-01-22 21:53:00 · 112 阅读 · 0 评论 -
Web测试:Selenium使用
<style>.confluenceTable {border:solid 1px #80cebf; }.confluenceTable td {border:solid 1px #80cebf; }.confluenceTd{border:solid 1px #80cebf; margin:0px;padding:2px;}</style>本文包含的主要内容:...2008-12-23 10:49:00 · 375 阅读 · 0 评论 -
谈软件协作:君子和而不同,小人同而不和
我们知道现在的软件开发最大的问题就是变化,其实这也不是软件本身的问题,我更觉得是软件的特点。因为他不像建筑,画个建筑图,一般不会偏到哪里去。然而很多需要软件的人,他可能希望软件能达到什么目的,至于具体是什么样子,他自己也不知道。大部分都是看到一部分想起一部分,自己也不断的修正。这也是为什么最近敏捷大行其道。我甚至服务过一个客户,做一个公园系统,为的是送一张免费的VIP卡给业主,最终目的是卖房子...2008-12-31 18:39:00 · 114 阅读 · 0 评论 -
如何进行ASP.NET MVC 的测试
本文参考了http://stephenwalther.com/blog/的内容。今天需要对ASP.NET MVC的Controller进行测试,我们都知道当我们在测试工程里new一个controller时,这个controller里的httpcontext是空的,也就是session,cookie, form等都是空。方法一:Mock controller的HttpContext, 暂时失败...2009-01-05 00:48:00 · 201 阅读 · 0 评论 -
如何使ASP.NET MVC Controller易测试呢?
昨天那篇文章如何进行ASP.NET MVC 的测试,虽然通过自己写一个Fake的HttpContext,但是同时也暴露出之所以难于测试,是因为设计的代码不易测试,根据Jeffrey Zhao(老赵)的建议(我没完全看懂如何去做),我又重新试了一下,我把对httpcontext的操作全部放到一个ModelBinder里,因为那里可以处理httpcontext,而测试的时候是不执行ModelBinde...2009-01-05 23:25:00 · 135 阅读 · 0 评论 -
ASP.NET MVC源码现在可以下载了(翻译)
上个月我在blog里介绍了ASP.NET MVC Roadmap,两个周以前我们发布了ASP.NET Preview 2 Release,ASP.NET组的Phil Haack写了一篇很好的blog介绍了这个版本.在我的Roadmap那篇文章里我提到我们将会公布ASP.NET MVC Framework的源代码,让我们容易构建,调试和修改(你可以自己修改遇到的问题而不用等到下一个版本更新) ...2008-03-22 09:44:00 · 362 阅读 · 0 评论 -
ASP.NET MVC+LINQ开发一个图书销售站点
园子里已经有很多人讲解了其理论知识,网上也有不少示例,但是很多示例都是Prieview1的,写这篇blog的目的是想用ASP.NET MVC+LINQ做一个示例项目,主要是为了演示ASP.NET MVC+LINQ的一些特性,本人也是边学习边做,如果有哪位朋友发现哪里有问题或者有更好的实现,非常非常欢迎赐教,我还有很多没有实验,比如这个如何与ASP.NET AJAX结合,如何验证、如何与Silver...2008-03-29 17:12:00 · 75 阅读 · 0 评论 -
Linq to SQL Dynamic 动态查询
在开发中我们常需要使用动态的条件来组合查询,scotte博客里提到了MS提供的一个动态查询类库Basic Dynamic LINQ C# Sample,这个可以给我们提供不少方便,但是给的示例实在太简单,实际当中我们很多不能像他这样用。 首先引入DynamicLibrary.cs,下面是我使用过程中的一些运行正确的用法(里面使用返回DataSet是因为对旧程序升级),我觉得写法很怪异,但是的确...2008-04-01 15:09:00 · 119 阅读 · 0 评论 -
使用ASP.NET 3.5 Extensions管理浏览器历史:使用服务器端
我们知道当我们使用ASP.NET AJAX的一些方便的服务端控件如UpdatePanel,我们的浏览器不能保存这些异步浏览的页面状态,而ASP.NET3.5 Extensions给我们提供了一个解决方法,下面演示一下使用实例:一:简单示例1. 首先下载安装ASP.NET 3.5 Extensions2.新建一个ASP.NET3.5 Extensions Web Application 3...2008-04-08 13:15:00 · 96 阅读 · 0 评论 -
客户比产品更重要
发现博客园里99%都是技术文章,很少有管理的经验分享,我们很多人都想有技术到管理,但是管理不是一蹴而就的,需要一定的时间积累,如果你的天赋高,时间可能会短些,但是管理设计到人,人是最复杂的,所以我认为管理没有最好,只有更好。我想每个技术人员能在做技术是接触一些管理会对技术也是有帮助的。这样技术人员可能会理解市场人员,会明白有时销售人员确实是瞎说也有瞎说的道理。 园子里大牛很多,...2008-04-12 15:49:00 · 188 阅读 · 0 评论 -
WPF 全球化和本地化(图解)
当您将自己的产品限制为只能通过一种语言使用时,您便将潜在的客户群限制为全球 65 亿人口中的一小部分。如果您想让自己的应用程序被全球用户所接受,那么对产品进行经济而有效的本地化将是赢得更多客户的最好、最经济的方法 本文源码下载:http://www.cnblogs.com/Files/cnblogsfans/WPFLocalize.rar 1.新建WPF Application 2.定义界面如...2008-04-12 16:15:00 · 119 阅读 · 0 评论 -
项目经理如何参与任务管理
每个项目经理可能都会任务的管理,下面根据自己的经验画出两种方式 解释一下流程: 前提:客户发过来一些需求,并且等待这个需求完成的时间 第一种方案:(1)项目经理接到需求后把需求按角色拆分成任务,(2)估计每一个任务的完成时间 (3)把任务分配给不同的人 (4)开发人员确定给定时间是否能完成 (5)项目经理调整时间 (6)把时间报给客户 第二种方案:(1)项目经理接到需求后拆分成任务(不管角...2008-04-14 17:55:00 · 161 阅读 · 0 评论 -
.NET环境下每日集成
本系列主要介绍了.Net环境下如何使用CruiseControl.Net进行每日集成 .NET环境下每日集成(1):简介 .NET环境下每日集成(2):CruiseControl.Net安装 .NET环境下每日集成(3):CruiseControl.Net配置 .NET环境下每日集成(4):CruiseControl.Net配置注意事项 .NET环境下每日集成(5):CruiseControl.N...2008-04-24 17:36:00 · 77 阅读 · 0 评论 -
ASP.NET MVC AJAX的调用
在ASP.NET MVC beta中我们可以使用Ajax.BeginForm, Ajax.ActionLink来进行Ajax调用,同样我们也可以使用一些支持Ajax 框架如jQuery来简化对ajax的调用。1. ASP.NET MVC beta中内置了AJAX的支持,但是我们必须引入MicrosoftAjax.js, MicorsoftMvcAjax.js. 2. 由于ASP.NET MV...2009-01-10 08:21:00 · 121 阅读 · 0 评论 -
IIS7 配置ASP.NET 2.0, WCF, ASP.NET MVC
ASP.NET 2.0 部署1.首先打开win7 的特性,路径我已标注下面选中的是ASP.NET2.0, 如果要支持ASP.NET1.1,你的选中IIS6兼容2. 设置安全选项 3. 添加.Net经典应用程序池 4.将站点转换为Application 5.为站点添加 yourmachinename\IIS_IUSRS权限 6.右键站点—Manage Application...2009-01-16 17:50:00 · 167 阅读 · 0 评论 -
一步一步学Ruby(一): Ruby介绍
文章摘要Ruby是如何来的 准备 ScreenShotRuby是如何来的Ruby 的发明者松本行弘 Yukihiro “matz” Matsumoto,混合了他喜欢的语言(Perl、 Smalltalk、 Eiffel、 Ada 和 Lisp ) 产生了一种具有函数式及指令程序设计特性的新语言。他常说,他是“试着让 Ruby 更自然,而不是简单,就像生活一样”。...2009-01-21 00:16:00 · 426 阅读 · 0 评论 -
TDD实验2:使用VSTS 的单元测试功能
我们要实现的功能是,发工资时自动向我们发送邮件,如果工资少于10万(我们多少人的梦想呀),就让他发送失败。1. 首先我们建一个测试工程和一个测试类 测试类重命名为SalaryMessageTest [TestMethod] public void SendEmailToMe() { SalaryMessage salar...2008-12-10 08:25:00 · 229 阅读 · 0 评论