2013年2月13日

Ruby--instance_variable_get(@xx)

摘要: instance_variable_get(var)ruby 1.8 特性取得并返回对象的实例变量的值.可以使用字符串或者Symbol来向var指定实例变量名.若实例变量尚未定义,则返回nil.class Foo def initialize @foo = 1 endendobj = Foo.newp obj.instance_variable_get("@foo") # => 1p obj.instance_variable_get(:@foo) # => 1p obj.instance_variable_get(:@bar) # => nilinsta 阅读全文

posted @ 2013-02-13 00:20 tim_sheng 阅读(1935) 评论(0) 推荐(0) 编辑

2013年1月19日

ruby符号的应用

摘要: $!: 最近一次错误信息$?: 最近一次执行的子进程退出的状况$$:: 解释器进程ID$*: 命令行参数$0: Ruby当前运行程序的文件名$\: 输出记录分隔符$/: 输入记录分隔符$=: 是否区分大小写标志$n: 最近匹配的第n个子表达式$~: 自表达式组的最近一次匹配$&: 最近一次同正则表达式匹配的字符串$.: 解释器最近读的行数$_: gets最近读取的字符串$@: 错误产生的位置 阅读全文

posted @ 2013-01-19 22:27 tim_sheng 阅读(173) 评论(0) 推荐(0) 编辑

2013年1月17日

Ruby--require 加载文件

摘要: 加载文件时需要:require ‘file’但是加载这个文件前需要有个上下文环境,如:$:.unshift(File.expand_path(File.join(File.dirname(__FILE__),’..’,’file’)))require 如果返回true,说明成功读取了新的功能加载路径,就是默认ruby启动的时候会在这些路径里去寻找可以加载的类库。ruby加载路径放在一个变量$LOAD_PATH($:)里。函数解释:File.dirname(__FILE__) 得到当前文件的路径File.join(‘x’,’y’,’z’) 相当于x/y/zFile.expand_path( 阅读全文

posted @ 2013-01-17 22:54 tim_sheng 阅读(394) 评论(0) 推荐(0) 编辑

Ruby应用httpwatch进行前端页面自动化

摘要: HttpWatch概述HttpWatch是IE和Firefox浏览器上的一款插件工具,用来捕获浏览过程中所产生的数据信息,并记录其相关日志文件。虽然HttpWatch 能通过手动来控制运行,但很多时候为了提高效率,对于一些重复执行的任务,比如性能测试需要自动化来完成,这样就可以使用HttpWatch来配合自动化 测试性能来自动获取其相关数据信息,从而使得HttpWatch也能自动化进行操作。因此为了更好的配合自动化测试,HttpWatch插件专门提供自动 化接口类程序,以便外部程序来自动化获取其已经存在的数据信息。HttpWatch中提供了大约三十种以上的自动化接口,但只有四个主要的类用于控制 阅读全文

posted @ 2013-01-17 17:04 tim_sheng 阅读(1943) 评论(0) 推荐(0) 编辑

2012年12月13日

散列

摘要: 在方法调用上可以把散列作为参数。Ruby允许省略花括号,但前提是散列是方法调用的最后一个参数。在Rails中该功能得到广泛应用。下面代码片段演示了如何将具有两个元素的散列传递给方法redirect_to。从实际效果来看,可以认为它不是散列,并且假装Ruby具有关键字参数。redirect_to :action => 'show', :id => product.id 阅读全文

posted @ 2012-12-13 09:12 tim_sheng 阅读(212) 评论(0) 推荐(0) 编辑

2012年12月10日

行为驱动开发: Cucumber的目录结构和执行过程 (转载)

摘要: Cucumber是Ruby世界的BDD框架,开发人员主要与两类文件打交到,Feature文件和相应的Step文件。Feature文件是以 feature为后缀名的文件,以Given-When-Then的方式描述了系统的场景(scenarios)行为;Step文件为普通的Ruby文 件,Feature文件中的每个Given/When/Then步骤在Step文件中都有对应的Ruby执行代码,两类文件通过正则表达式相关联。笔者在 用Cucumber+Watir做回归测试时对Cucumber工程的目录结构执行过程进行了研究。安装好Cucumber后,如果在终端直接执行cucumber命令,得到以下输出 阅读全文

posted @ 2012-12-10 23:02 tim_sheng 阅读(1260) 评论(0) 推荐(0) 编辑

2012年11月28日

git使用简介

摘要: 这篇文章将从开发者和管理者两方面介绍如何使用git进行团队合作开发。1.git 和svn的差异git和svn 最大的差异在于git是分布式的管理方式而svn是集中式的管理方式。如果不习惯用代码管理工具,可能比较难理解分布式管理和集中式管理的概念。下面介绍两种工具的工作流程(团队开发),通过阅读下面的工作流程,你将会很好的理解以上两个概念。集中式管理的工作流程如下图(图2.1): 集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。下面举例说明:开始新一天的工. 阅读全文

posted @ 2012-11-28 16:56 tim_sheng 阅读(6634) 评论(3) 推荐(2) 编辑

2012年11月14日

ruby 方法查找 and执行方法

摘要: 当调用一个方法时,Ruby会做两件事。1.找到这个方法。这个方法称为方法查找。2.执行这个方法。为了做到这点,Ruby需要一个叫做self的东西。这样的一个过程--发现一个方法再执行之--在每种面向对象语言中都会发生。不过,对于像Ruby这样非常动态的语言,深入理解这个过程显得尤为重要。你有没有好奇过一个方法究竟定义在哪里呢?如果有,那绝对应该深入理解方法查找及self。当调用一个方法时,Ruby会在对象的类中查找那个方法。不过,在给出更复杂的例子之前,你需要了解两个新概念:接收者(receiver)和祖先链(ancetors chain)。接收者就是你调用方法所在的对象。例如,在my_str 阅读全文

posted @ 2012-11-14 18:12 tim_sheng 阅读(629) 评论(0) 推荐(0) 编辑

2012年11月6日

Ruby 模块

摘要: 模块与类很相似,它也可以说成是“不能被实例化的类”。由于Class类是Module类的子类,所以说成是“类=模块+实例化能力”也许更好。所谓模块,究竟是用来干什么的呢?其作用主要有两大类:Mix-in和命名空间。Mix-in实际上是受限制的多重继承。利用实际做成的继承关系,可以实现对某些类进行一些“点缀”的目的。事实上,Mix-in这种说法就来自于在冰激凌上面的饼干或者坚果。在面向对象设计的历史中,由多重继承机制造成的问题早已众所周知了。所以,很多现代的面向对象设计语言都只支持单一继承的方式。Ruby就是采用的这种方式。但是,多重继承机制也有不能被割舍的魅力。因此Ruby通过采用Mix-in的 阅读全文

posted @ 2012-11-06 15:14 tim_sheng 阅读(647) 评论(0) 推荐(0) 编辑

2012年10月17日

ruby webdriver 启动firefox driver时,加载firebug的扩展

摘要: 在官方wiki上看到Adding an extensionIt's often useful to have Firebug available in the Firefox instance launched by WebDriver:profile = Selenium::WebDriver::Firefox::Profile.newprofile.add_extension("/path/to/firebug.xpi")driver = Selenium::WebDriver.for :firefox, :profile => profile于是乎自己尝 阅读全文

posted @ 2012-10-17 17:02 tim_sheng 阅读(1838) 评论(2) 推荐(0) 编辑

导航