摘要:
昨天因为要装watir-webdriver的原因将用了快一年的ruby1.8.6升级到了1.9。由于1.9是原生支持unicode编码,所以我们可以使用中文进行自动化脚本的编写工作。做了简单的封装后,我们可以实现如下的自动化测试代码。请注意,这些代码是可以正确运行并作为正式的自动化测试用例的。1 测试浏览器 = Watir::Browser.new :firefox2 测试浏览器.转到 'www.google.com'3 在(测试浏览器.的.text_field(:name, "q")).中.输入 "qq"4 点击 测试浏览器.的.but 阅读全文
摘要:
bluecloth是一种ruby语言实现的text to html转换器。关于bluecloth的介绍如下:BlueCloth is a Ruby implementation ofMarkdown, a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).bluecloth作为老 阅读全文
摘要:
AutoIt是windows上强大的自动化工具。我们可以通过ruby去调用AutoItX3.dll来使用autoit的部分功能。具体代码如下1require'win32ole'2at=WIN32OLE.new('AutoItX3.Control')34#然后就可以使用5at.WinWait6at.Send 阅读全文
摘要:
昨天在stack overflow上问了2个关于Rspec源码的问题,结果由于表意不清加之问题含糊被老外鄙视了一遍。但是没有想到的是,竟然还是高人非常清楚的问答了出来。其中一个问题是这样的:classOptionParser<::OptionParser这句代码究竟是什么意思?原来这句话的作用是定义1个OptionParser类,其集成至ruby核心库的OptionParser。这句话里面的::表示强制使用核心库的namespace。万恶的ruby语法。 阅读全文
摘要:
从上一篇博文我们可以看出,策略模式的策略类实际上就是一组实现特定功能的代码集合。而ruby实际上已经原生提供了操作一组代码集合的对象,Proc类。于是我们可以用更加ruby些的方式来实现我们的Report类和策略模式。具体代码如下:classReportattr_reader:title,:textattr_accessor:formatterdefinitialize&formatter@title='Myreporttherubyway'@text=['Thisisareport','whichwaswritten','int 阅读全文
摘要:
我们经常要在子类的initialize方法中调用super和super()。从语法上说super和super()是有微妙区别的。super不带括号表示调用父类的同名函数,并将本函数的所有参数传入父类的同名函数;super()带括号则表示调用父类的同名函数,但是不传入任何参数;演示代码如下:1classSParent2definitialize*args3args.each{|arg|putsarg}4end5end67classSChild<SParent8definitializea,b,c9super10end11end1213a,b,c=*%W[abc]14SChild.newa, 阅读全文
摘要:
默认情况下使用selenium或者waitr webdriver启动浏览器,浏览器中保存的cookie是不可访问的。为什么要保留浏览器中的cookie呢?这是因为有些站点登陆时候有验证码或动态密码验证。一般情况下selenium或watir webdriver是无法获取动态密码或验证码自动完成登陆的。那么使用动态密码或验证码的网站我们就无法自动化测试了么?答案是不一定,因为有些网站登陆后会在cookie中写入当前用户的登录态,于是只要登陆一次该站点,那么下次访问的时候就不需要再登陆了。因此我们需要让浏览器为我们保存cookie以使得我们可以不需要登陆站点就能进行自动化测试。但是selenium 阅读全文
摘要:
观察者模式应该是最容易理解的设计模式了。考虑这个例子。作为雇员的你当工资发生改变的时候你会想到什么?请朋友吃饭?给女朋友买衣服?给自己买台Iphone4?很可惜,你所增加的那点可怜的工资恐怕难以支持你做以上这些事情吧。当你工资增加之后,你的个人所得税理所当然的增加了;你的住房公积金提高了;你的社保不出意外也要多交了。剩下来的那点应该也不够塞牙了。这个理应是喜剧的杯具中实际上包含了观察者模式的基本概念。在这个例子中,社保局、税务局实际上是你的观察者。当你的工资发生变化时,你(一般来说是你的雇主)会通知有关部门,以便有关部门能够根据你的收入调整税收或社保政策。下面的代码(使用ruby1.9实现,1 阅读全文